私はSpring Batchを使用しており、SimpleAsyncTaskExecutor
を使用して実行されるタスクレットを作成しました。このステップでは、私はSpringバッチのマルチスレッドステップでのStepExecutionContextへの書き込み
@BeforeStep
public void saveStepExecution(StepExecution stepExecution) {
this.stepExecution = stepExecution;
}
でStepExecutionContext
を取得しています、私はコンテキストを更新しよう:
stepExecution.getExecutionContext().put("info", contextInfo);
これはstepExecution
にConcurrentModificationException
秒につながります。 これらを回避し、このマルチスレッド環境でコンテキストを更新するにはどうすればよいですか?
もっと情報を提供してください。どのスプリングバッチバージョンとタスクレット実装のソース –
SpringBatch 2.1.8。この質問に答えるために必要な実装の詳細は何ですか? – tobiasbayer
'RepeatStatus execute(StepContribution contribution、ChunkContext chunkContext)'を実装する必要がある 'org.springframework.batch.core.step.tasklet.Tasklet'でタスクレットを実装していて、chunkContext内に変更可能なstepExecutionContextがある場合は、 BeforeStep Annotationを使用してstepExecutionを取得すると、「タスクレット」の見た目がわからない場合や、「タスクレット」の場合でも、 –