我在文档中读到,多线程步骤是不安全的,因为许多ItemReaders和Writers都不是线程安全的 .
我正在使用FlatFileItemReader来读取和处理项目 .
如果文件中有大量要处理的项目,我正在使用远程分区 .
但是有些步骤只有2-3个项目的输入文件(它们只是市场ID,例如eu,gb等) . 我将增加几个市场 . 我需要运行一些命令,将这些市场ID作为输入 . 我想为所有这些命令并行运行命令 .
即使我使用FlatFileItemReader,多线程步骤是否可以安全地用于此类用例?或者我应该进行远程分区(没有太多数据需要分区)?
此外,如果我使用多线程步骤,它将正确运行我启动具有不同参数的相同作业的多个实例,例如不同的约会?
1 回答
FlatFileItemReader
不是线程安全的,因为它可以知道重启时有什么和没有读过什么 . 如果可重启性不是问题(如果作业失败,您可以从头开始),那么您可以在FlatFileItemReader
的步骤中使用多个线程 .