面向块的处理多线程?

时间:2018-05-29 01:24:37

标签: spring multithreading spring-batch batch-processing

如果我为春季批次定义如下:

<chunk reader="chunkReader" 
    writer="chunkWriter" 
    processor="chunkProcessor" 
    commit-interval="#{jobParameters['commitSize']}" />

在这个春季批处理的面向块的处理中,是否并行处理了块?并行处理的块中的各个项目是什么?

我主要是想看看我是否需要担心多线程和竞争条件。

1 个答案:

答案 0 :(得分:1)

除非你指示Spring,否则它将是顺序的。

如果您决定使用多线程,批处理作业可以使用Spring的TaskExecutor抽象来执行其自己的线程中的每个块。作业中的步骤可以配置为在线程池内执行,独立处理每个块。在处理块时,Spring Batch会跟踪相应的操作。如果任何一个线程发生错误,则按常规Spring Batch功能回滚或终止作业的处理。

请参阅:https://docs.spring.io/spring-batch/trunk/reference/html/scalability.html

How to set up multi-threading in Spring Batch?