如果我为春季批次定义如下:
<chunk reader="chunkReader"
writer="chunkWriter"
processor="chunkProcessor"
commit-interval="#{jobParameters['commitSize']}" />
在这个春季批处理的面向块的处理中,是否并行处理了块?并行处理的块中的各个项目是什么?
我主要是想看看我是否需要担心多线程和竞争条件。
答案 0 :(得分:1)
除非你指示Spring,否则它将是顺序的。
如果您决定使用多线程,批处理作业可以使用Spring的TaskExecutor抽象来执行其自己的线程中的每个块。作业中的步骤可以配置为在线程池内执行,独立处理每个块。在处理块时,Spring Batch会跟踪相应的操作。如果任何一个线程发生错误,则按常规Spring Batch功能回滚或终止作业的处理。
请参阅:https://docs.spring.io/spring-batch/trunk/reference/html/scalability.html
和