重新启动作业时,不执行批处理,即process()
不调用批处理的方法。
有人有一些提示为什么重新启动不执行任何批处理。我已经尝试了几乎所有组合,但没有进行任何更改以使重新启动正常工作。
重新启动这样 () 不会带来错误 - 但是会成功终止而不调用任何批处理process()
方法。
我将 wildfly-13.0.0.Final 与 jBeret 一起使用。
我有一个带有这个 jox.xml 定义的简单 java 批处理作业。被调用的批处理当前除了返回状态之外什么都不做。
<job id="job" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0" restartable="true">
<flow id="processing">
<step id="download" next="process">
<batchlet ref="download"/>
</step>
<step id="process" next="notify">
<batchlet ref="process"/>
<stop on="STOPPED" restart="notify" />
</step>
<step id="notify">
<batchlet ref="noify"/>
<end on="COMPLETED"/>
</step>
</flow>
</job>
bachlets 的返回值为:
- 下载...已完成
- 进程...已停止
- 通知...已完成
开始这项工作时,jobOperator.start()
一切都按预期工作。
当重新启动 STOPPED 作业执行时jobOperator.restart()
,作业被执行,但没有调用 batchlet。
批处理看起来像这样
@Named
public class Notify extends AbstractBatchlet {
@Override
public String process() throws Exception {
return BatchStatus.COMPLETED.toString();
}
@Override
public void stop() throws Exception {
}
}