如何并行运行wildfly批处理作业

时间:2015-10-06 10:05:15

标签: java-ee batch-processing wildfly

我在wildfly 8.1中使用批处理作业,我想从头开始 执行批处理 然后做出决定,如果结果被接受 我想并行执行一些步骤。 我只是不确定如何在我的myJob.xml文件

中完成此操作
    <step id="availableRecords" next="anyRecordsAvailableDecider">
        <batchlet ref="availableRecords"/>
    </step>

    <decision id="anyRecordsAvailableDecider" ref="recordsAvailableDecider">
        <next on="recordesAvailable" to="getAvailableRecordsDetails"/>
        <stop on="noCardsAvailable"/>
    </decision>

<flow id="getAvailableRecordsDetails">
    <step id="getRecordTypeA">
        <batchlet ref="RecordTypeA"/>
    </step>
    <step id="getRecordTypeB">
        <batchlet ref="RecordTypeB"/>
    </step>
    <step id="getRecordTypeC">
        <batchlet ref="RecordTypeC"/>
    </step>
    <step id="getRecordTypeD">
        <batchlet ref="RecordTypeD"/>
    </step>
</flow>

那么可以在getAvailableRecordsDetails流程周围进行拆分,还是应该以某种方式使用分区? 使用分区会很好,因为我可以使用PartitionMapper来获取这些步骤中的一些属性。

1 个答案:

答案 0 :(得分:2)

我找到了答案:

    <step id="availableRecords" next="anyRecordsAvailableDecider">
        <batchlet ref="availableRecords"/>
    </step>

    <decision id="anyRecordsAvailableDecider" ref="recordsAvailableDecider">
        <next on="recordesAvailable" to="split1"/>
        <stop on="noCardsAvailable"/>
    </decision>

    <split id="split1">
        <flow id="getAvailableRecordsDetails">
            <step id="getRecordTypeA">
                <batchlet ref="RecordTypeA"/>
            </step>
        </flow>
        <flow>
            <step id="getRecordTypeB">
                <batchlet ref="RecordTypeB"/>
            </step>
        </flow>
        <flow>
            <step id="getRecordTypeC">
                <batchlet ref="RecordTypeC"/>
            </step>
        </flow>
        <flow>
            <step id="getRecordTypeD">
                <batchlet ref="RecordTypeD"/>
            </step>
        </flow>
    </split>