Spring Batch Partitioning - 重用JMS通道?

我正在编写一个Spring Batch作业,它由4个独立的步骤组成,并希望通过集群的节点分配工作 . 我正在考虑使用流程将作业分成4个并行执行的作业 . 4个作业中的每一个都将配置为作为单个分区运行 . 它似乎工作(未在群集中完全测试)但需要定义单独的PartitionHandler,请求和响应通道以及出站网关 .

可以跨分区步骤重用这些实体中的任何一个吗?

任何其他建议的方法?

回答(1)

2 years ago

对于并行处理,我可以建议this doc

例如:

<job id="parallelJobExample">
    <split id="parallelProcessingExample" task-executor="taskExecutor">
        <flow>
            <step id="step1" parent="independetJob1"/>
        </flow>
        <flow>
            <step id="step2" parent="independetJob2"/>
        </flow>
    </split>
</job>

<step id="independetJob1">
    <tasklet>
        <chunk reader="parallelReader1" processor="parallelProcessor1" writer="parallelWriter1" commit-interval="1000"/>
    </tasklet>
</step>

<step id="independetJob2">
    <tasklet>
        <chunk reader="parallelReader2" processor="parallelProcessor2" writer="parallelWriter2" commit-interval="1000"/>
    </tasklet>
</step>

如果您需要jms示例,我也可以提供 .