6

チーム、

フラットファイルからレコードを読み取り、データをデータベースに挿入するための技術的な問題を解決しています。

私はチャンクタスクを使用しており、スプリングバッチ管理を使用してこのジョブを正常に実行しています。

各再試行間の時間間隔を設定する機能とともに、再試行ポリシーを実装する必要があります。チャックが直接サポートしていないため、各再試行間の時間間隔を設定することに行き詰まっています。これに対する回避策はありますか?

私のコードは

<batch:job id="importDataJob" job-repository="jobRepository">
  <batch:step id="importDataStep">
    <batch:tasklet transaction-manager="transactionManager">
      <batch:chunk reader="dataReader" writer="dataWriter"  commit-interval="1" retry-limit="3">
        <batch:retryable-exception-classes>
          <batch:include class="javax.naming.ServiceUnavailableException" />
        </batch:retryable-exception-classes>
      </batch:chunk>
    </batch:tasklet>
  </batch:step>
</batch:job>
4

1 に答える 1

6

あなたの場合、構成は次のようになります。

Spring Batch 2.x

<bean id="stepParent" class="org.springframework.batch.core.step.item.FaultTolerantStepFactoryBean" abstract="true">
  <property name="backOffPolicy">
    <bean class="org.springframework.batch.retry.backoff.FixedBackOffPolicy"
      <property name="backOffPeriod" value="2000" />
    </bean>
  </property>
</bean>

<batch:job id="importDataJob" job-repository="jobRepository">
  <batch:step id="importDataStep" parent="stepParent">
     ...
  </batch:step>
</batch:job>

残念ながら、名前空間はへの直接batch設定をサポートしていません。BATCH-1441を参照してください。backOffPolicystep

Spring Batch 3.0

Spring Batch 3.0では、一部のクラスが他のパッケージに移動しました。これは構成フラグメントです。

<bean id="stepParent"
  class="org.springframework.batch.core.step.factory.FaultTolerantStepFactoryBean"         
  abstract="true">

  <property name="backOffPolicy">
    <bean class="org.springframework.retry.backoff.FixedBackOffPolicy">
      <property name="backOffPeriod" value="2000"/>
    </bean>
  </property>

</bean>
于 2012-04-30T17:18:37.127 に答える