StepExecutionContext和Writer实例变量在Spring Batch中是否是线程安全的?

时间:2015-04-15 01:59:10

标签: thread-safety spring-batch

我在Step侦听器中派生一个值,并通过StepExecutionContext在Itemwriter中共享它。如果有多个实例正在运行该作业,那么它是否具有线程安全性,具有那些参数(特定于该作业)Spring Batch的StepExecutionContext?

另一个问题 - 我在Itemwriter中有一个计数器变量作为实例变量,并在write()中增加相同的变量。这个计数器是否是线程安全的。

1 个答案:

答案 0 :(得分:0)

我认为这不仅仅是线程安全。

如果你想拥有一个读/写/监听器的单个实例,你必须确保它是无状态的。

如果你需要在这些工件中保持状态,你必须确保它将成为每个作业执行的新实例,其中一种方法是将它们声明为步骤范围。