18.2. 作业规格语言(JSL)继承
JBoss EAP batch-jberet 子系统的一项功能是能够使用作业规格语言(JSL)继承来提取您的作业定义中的一些常见部分。
在相同作业 XML 文件中继承步骤和流
父元素(如 step 和 stream)标有属性 abstract ="true",以将其从直接执行中排除。子元素包含指向 父 元素的父属性。
<job id="inheritance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
<!-- abstract step and flow -->
<step id="step0" abstract="true">
<batchlet ref="batchlet0"/>
</step>
<flow id="flow0" abstract="true">
<step id="flow0.step1" parent="step0"/>
</flow>
<!-- concrete step and flow -->
<step id="step1" parent="step0" next="flow1"/>
<flow id="flow1" parent="flow0"/>
</job>从不同的作业 XML 文件中继承步骤
子元素(如 step 和 job)包含:
-
a
jsl-name属性,它指定作业 XML 文件名,不包含父元素。 -
父属性,它指向由jsl-name指定的作业 XML 文件中的父元素。
父元素标有属性 abstract ="true",以将其从直接执行中排除。
示例: chunk-child.xml
<job id="chunk-child" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
<step id="chunk-child-step" parent="chunk-parent-step" jsl-name="chunk-parent">
</step>
</job>
示例: block-parent.xml
<job id="chunk-parent" >
<step id="chunk-parent-step" abstract="true">
<chunk checkpoint-policy="item" skip-limit="5" retry-limit="5">
<reader ref="R1"></reader>
<processor ref="P1"></processor>
<writer ref="W1"></writer>
<checkpoint-algorithm ref="parent">
<properties>
<property name="parent" value="parent"></property>
</properties>
</checkpoint-algorithm>
<skippable-exception-classes>
<include class="java.lang.Exception"></include>
<exclude class="java.io.IOException"></exclude>
</skippable-exception-classes>
<retryable-exception-classes>
<include class="java.lang.Exception"></include>
<exclude class="java.io.IOException"></exclude>
</retryable-exception-classes>
<no-rollback-exception-classes>
<include class="java.lang.Exception"></include>
<exclude class="java.io.IOException"></exclude>
</no-rollback-exception-classes>
</chunk>
</step>
</job>