2015-10-06 82 views
2

我使用批處理作業在wildfly 8.1 wildfly批處理作業,我想通過 執行batchlet 開始,然後做出決定,如果結果被接受 我想運行並行步數。 我只是不知道該如何在我的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獲取一些屬性進入這些步驟。

回答

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>