Spring 批处理作业中有多个分区程序

More than one Partitioner in a Spring batch job

我有两个不同的文件(都是不同的布局),我将其拆分为多个文件以利用本地步骤分区。

到目前为止,我正在处理一个文件,并且我已经创建了一个自定义分区程序 class 以利用步进分区。

现在我想包含另一个文件,所以我计划为这个新文件创建另一个分区程序 class。 (想法是为新文件创建另一个步骤)。或者我们可以对两个步骤使用相同的分区程序吗?

这行得通吗?还是我们需要为每个文件创建单独的作业?

这是我当前的配置:

<batch:step id="step9">
        <batch:partition step="loadFlatFiles" partitioner="multiFileResourcePartitioner">
                    <batch:handler grid-size="15" task-executor="loadCustomerTaskExecutor" />
        </batch:partition>
    </batch:step>

<bean id="multiFileResourcePartitioner" class="com.cdi.batch.partitioner.MultiFileResourcePartitioner"
        scope="step">
        <property name="keyName" value="fileResource" />
        <property name="fileName" value="fileName" />
        <property name="directory" value="file:${input.files.location}" />
</bean>

请告诉我这种方法是否正确,这种方法是否会出现任何问题?

此致, 香卡.

你那里的东西应该可以正常工作。由于分区程序是步骤范围的,每个步骤都应该有它自己的实例。