2015-07-21 31 views
0

目前,我的一個作業定義文件如下所示。問題是我想運行許多相同的塊(並行隊列處理),在這種情況下,我將不得不復制例如20個相同的流,這些流只在id中有所不同。是否可以在Java EE批處理定義文件中執行僞循環?

是否有可能以某種方式編程或可能有一些有用的屬性?

如果存在這種可能性,切換到Spring Batch也不是問題。

<?xml version="1.0" encoding="UTF-8"?> 
<job id="socialJob" xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/jobXML_1_0.xsd" 
    version="1.0"> 
    <step id="prepare" next="mySplit"> 
     <batchlet ref="myPreProcessor" /> 
    </step> 
    <split id="mySplit"> 
     <flow id="s1"> 
      <step id="myStep1"> 
       <chunk item-count="1"> 
        <reader ref="myReader" /> 
        <processor ref="myProcessor" /> 
        <writer ref="myWriter" /> 
        <skippable-exception-classes> 
         <include class="java.lang.Exception" /> 
        </skippable-exception-classes> 
       </chunk> 
      </step> 
     </flow> 
     <flow id="s2"> 
      <step id="myStep2"> 
       <chunk item-count="1"> 
        <reader ref="myReader" /> 
        <processor ref="myProcessor" /> 
        <writer ref="myWriter" /> 
        <skippable-exception-classes> 
         <include class="java.lang.Exception" /> 
        </skippable-exception-classes> 
       </chunk> 
      </step> 
     </flow> 
    </split> 
</job> 

回答

1

在Spring Batch中,可以執行循環的步驟。但是,根據JSR-352的規範,在JSR定義的作業中不允許循環。

+0

這是一個真正的痛苦,因爲它只允許在組塊方面過於簡單的場景。 – Sandy