我在 JDL 中有一个(非常简单的)java 批处理作业,只需两个步骤。
当“下载”步骤返回“已停止”状态时,作业应停止。重新启动后,应调用停止通知。
没有分区一切正常。
无分区统计
after step=download batchStatus=COMPLETED exitStatus=STOPPED
after job=job batchStatus=STOPPED exitStatus=STOPPED
有了分区,我得到了非常奇怪的批处理结束退出的状态。如果下载步骤返回“已停止”,则作业不会停止。即使分区只有一个线程和一个分区。
尝试重新启动时会引发以下错误(当然)。JBERET000609:作业执行 1 已完成,无法重新启动。
分区统计
after step=download batchStatus=STARTED exitStatus=null
after job=job batchStatus=COMPLETED exitStatus=COMPLETED
职位描述
<job id="job" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0" restartable="true">
<step id="download" next="notify">
<batchlet ref="downloadBatchlet">
</batchlet>
<partition>
<mapper ref="basicPartition" />
</partition>
<stop on="STOPPED" restart="notify"/>
</step>
<step id="notify">
<batchlet ref="notifyBatchlet"></batchlet>
<end on="COMPLETED"/>
</step>
</job>
欢迎每一个提示和建议。我错过了什么?
无分区
在作业开始时,作业调用 -downloadBatchlet => STOPPED 并停止。
重新启动作业时调用 - notifyBatchlet => COMPLETED 并结束。
带隔断
在作业开始时,作业调用 -downloadBatchlet => STOPPED 并停止。
重新启动时,作业调用 NO STEPS 并结束。
@Named
public class DownloadBatchlet extends AbstractBatchlet {
@Override
public String process() throws Exception {
return BatchStatus.STOPPED.toString();
}
@Override
public void stop() throws Exception {
}
}