如何 运行 并行执行 Wildfly 批处理作业
How to run a wildfly batch job in parallel
我在 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 流程进行拆分,或者我应该以某种方式使用分区?
使用 Partition 会很好,因为我可以使用 PartitionMapper 在这些步骤中获取一些属性。
我找到了答案:
<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>
我在 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 流程进行拆分,或者我应该以某种方式使用分区? 使用 Partition 会很好,因为我可以使用 PartitionMapper 在这些步骤中获取一些属性。
我找到了答案:
<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>