public class FaultTolerantChunkProcessor<I,O> extends SimpleChunkProcessor<I,O>
ChunkProcessor
インターフェースの FaultTolerant 実装。これにより、書き込み中に例外を引き起こすアイテムのスキップまたは再試行が可能になります。コンストラクターと説明 |
---|
FaultTolerantChunkProcessor(ItemProcessor<? super I,? extends O> itemProcessor, ItemWriter<? super O> itemWriter, BatchRetryTemplate batchRetryTemplate) |
修飾子と型 | メソッドと説明 |
---|---|
protected Chunk<O> | getAdjustedOutputs(Chunk<I> inputs, Chunk<O> outputs) 入力の追加保存データに基づいて出力を調整するサブクラスの拡張ポイント。 |
protected int | getFilterCount(Chunk<I> inputs, Chunk<O> outputs) フィルターカウントを計算するためのサブクラスの拡張ポイント。 |
protected void | initializeUserData(Chunk<I> inputs) 後でアカウンティングの目的で必要になった場合に備えて、サブクラスが入力内容を記憶できるようにするサブクラスの拡張ポイント。 |
protected boolean | isComplete(Chunk<I> inputs) 入力に追加データを保存するサブクラスの拡張ポイント。 |
void | setBuffering(boolean buffering) アイテムがバッファリングされているため、ロールバック後に常にチャンクとして返されることを示すフラグ。 |
void | setChunkMonitor(ChunkMonitor chunkMonitor) |
void | setKeyGenerator(KeyGenerator keyGenerator) ロールバック全体で失敗したアイテムを識別するために使用する KeyGenerator 。 |
void | setProcessorTransactional(boolean processorTransactional) ItemProcessor がトランザクションであることを示すフラグ(デフォルトは true)。 |
void | setProcessSkipPolicy(SkipPolicy SkipPolicy) |
void | setRollbackClassifier(org.springframework.classify.Classifier<java.lang.Throwable,java.lang.Boolean> rollbackClassifier) ロールバックを引き起こす例外(true を返す)と起こさない(false を返す)例外を区別できる分類子。 |
void | setWriteSkipPolicy(SkipPolicy SkipPolicy) |
protected Chunk<O> | transform(StepContribution contribution, Chunk<I> inputs) |
protected void | write(StepContribution contribution, Chunk<I> inputs, Chunk<O> outputs) 単純な実装は SimpleChunkProcessor.doWrite(List) メソッドに委譲し、コントリビューションの書き込みカウントをインクリメントします。 |
afterPropertiesSet, doAfterWrite, doOnWriteError, doProcess, doWrite, getListener, process, registerListener, setItemProcessor, setItemWriter, setListeners, stopTimer, writeItems
public FaultTolerantChunkProcessor(ItemProcessor<? super I,? extends O> itemProcessor, ItemWriter<? super O> itemWriter, BatchRetryTemplate batchRetryTemplate)
public void setKeyGenerator(KeyGenerator keyGenerator)
KeyGenerator
。buffering flag
が true(デフォルト)の場合は使用されません。keyGenerator
- 設定する KeyGenerator
public void setProcessSkipPolicy(SkipPolicy SkipPolicy)
SkipPolicy
- アイテム処理用の SkipPolicy
public void setWriteSkipPolicy(SkipPolicy SkipPolicy)
SkipPolicy
- アイテム書き込み用の SkipPolicy
public void setRollbackClassifier(org.springframework.classify.Classifier<java.lang.Throwable,java.lang.Boolean> rollbackClassifier)
rollbackClassifier
- 分類器 public void setChunkMonitor(ChunkMonitor chunkMonitor)
chunkMonitor
- モニター public void setBuffering(boolean buffering)
buffering
- アイテムがバッファリングされる場合は truepublic void setProcessorTransactional(boolean processorTransactional)
ItemProcessor
がトランザクションであることを示すフラグ(デフォルトは true)。false の場合、再試行とスキップを伴うロールバックがある場合でも、プロセッサーはチャンクごとのアイテムごとに 1 回だけ呼び出されます。processorTransactional
- 設定するフラグ値 protected void initializeUserData(Chunk<I> inputs)
SimpleChunkProcessor
SimpleChunkProcessor.isComplete(Chunk)
、SimpleChunkProcessor.getFilterCount(Chunk, Chunk)
、SimpleChunkProcessor.getAdjustedOutputs(Chunk, Chunk)
の一部またはすべても必要になる場合があります。SimpleChunkProcessor<I, O>
の initializeUserData
inputs
- プロセスへの入力 protected int getFilterCount(Chunk<I> inputs, Chunk<O> outputs)
SimpleChunkProcessor
SimpleChunkProcessor<I, O>
の getFilterCount
inputs
- 変換後の入力 outputs
- 変換後の出力 SimpleChunkProcessor.initializeUserData(Chunk)
protected boolean isComplete(Chunk<I> inputs)
SimpleChunkProcessor
SimpleChunkProcessor<I, O>
の isComplete
inputs
- 入力チャンク SimpleChunkProcessor.initializeUserData(Chunk)
protected Chunk<O> getAdjustedOutputs(Chunk<I> inputs, Chunk<O> outputs)
SimpleChunkProcessor
SimpleChunkProcessor<I, O>
の getAdjustedOutputs
inputs
- 変換の入力 outputs
- 変換の結果 SimpleChunkProcessor.initializeUserData(Chunk)
protected Chunk<O> transform(StepContribution contribution, Chunk<I> inputs) throws java.lang.Exception
SimpleChunkProcessor<I, O>
の transform
java.lang.Exception
protected void write(StepContribution contribution, Chunk<I> inputs, Chunk<O> outputs) throws java.lang.Exception
SimpleChunkProcessor
SimpleChunkProcessor.doWrite(List)
メソッドに委譲し、コントリビューションの書き込みカウントをインクリメントします。サブクラスは、フォールトトレランスなど、より複雑なシナリオを処理できます。出力項目がスキップされた場合は、入力からも削除する必要があります。SimpleChunkProcessor<I, O>
の write
contribution
- 現在のステップの貢献 inputs
- 出力を生じさせた入力 outputs
- 書き込む出力 java.lang.Exception
- 問題がある場合