Skip to content

Latest commit

 

History

History
executable file
·
82 lines (61 loc) · 3.47 KB

batch-config.md

File metadata and controls

executable file
·
82 lines (61 loc) · 3.47 KB

バッチ構成

Update Token Batch の構成は以下の2つのファイルがあります。

  • resources/META-INF/batches/batch-config.xml: バッチの共通構成
  • resources/META-INF/batches/update-token.xml: Job update token の構成

batch-config.xml

このファイルはバッチの動作に必要なコンポーネントを記述しています。その中で以下があります。

  • jobRepository
  • transactionManager
  • jobLauncher
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">

    <!-- JobRepository and JobLauncher are configuration/setup classes -->
    <bean id="jobRepository" class="org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean">
        <property name="transactionManager" ref="transactionManager"/>
    </bean>

    <bean id="transactionManager"
          class="org.springframework.batch.support.transaction.ResourcelessTransactionManager"/>

    <bean id="jobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
        <property name="jobRepository" ref="jobRepository"/>
    </bean>

    <!--Run batches-->
    <import resource="classpath:META-INF/batches/update-token.xml"/>

</beans>

update-token.xml

  • (reader、processor、write) コンポーネントと Job Update Token を記述しています。このジョブは (updateTokenStep1) ステップが一つしかありません。
  • 5秒ごとに job Update Token を動かすように、 JobRunner クラスを設定します。
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:batch="http://www.springframework.org/schema/batch"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:task="http://www.springframework.org/schema/task"
  xsi:schemaLocation="http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-3.0.xsd
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.3.xsd">

  <batch:job id="updateTokenJob" >
    <batch:step id="updateTokenStep1">
      <batch:tasklet>
        <batch:chunk
          reader="updateTokenReader"
          processor="updateTokenProcessor"
          writer="updateTokenWriter"
          commit-interval="1">
        </batch:chunk>
      </batch:tasklet>
    </batch:step>
  </batch:job>

  <bean id="updateTokenReader" class="com.co.hm.batches.modules.UpdateToken.UpdateTokenReader"/>
  <bean id="updateTokenProcessor" class="com.co.hm.batches.modules.UpdateToken.UpdateTokenProcessor" />
  <bean id="updateTokenWriter" class="com.co.hm.batches.modules.UpdateToken.UpdateTokenWriter" />

  <!-- Run every 1 minitue -->
  <task:scheduled-tasks>
    <task:scheduled ref="updateToken" method="run" cron="0 */1 * * * *" />
  </task:scheduled-tasks>

  <bean id="updateToken" class="com.co.hm.batches.modules.JobRunner" >
    <property name="job" ref="updateTokenJob"></property>
  </bean>

</beans>