我在Step侦听器中派生一个值,并通过StepExecutionContext在Itemwriter中共享它。如果有多个实例正在运行该作业,那么它是否具有线程安全性,具有那些参数(特定于该作业)Spring Batch的StepExecutionContext?
另一个问题 - 我在Itemwriter中有一个计数器变量作为实例变量,并在write()中增加相同的变量。这个计数器是否是线程安全的。
答案 0 :(得分:0)
我认为这不仅仅是线程安全。
如果你想拥有一个读/写/监听器的单个实例,你必须确保它是无状态的。
如果你需要在这些工件中保持状态,你必须确保它将成为每个作业执行的新实例,其中一种方法是将它们声明为步骤范围。