重新启动作业时,不执行任何批处理,即不调用批处理的process()
方法。
有人暗示为什么重新启动不执行任何批处理。我已经尝试了几乎所有组合,但都没有进行任何更改,以使重启正常工作。
这样的重启工作()不会带来错误-BUT成功终止而没有调用任何批处理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>
小行政区的返回值为:
以jobOperator.start()
开始这项工作时,一切正常。
使用jobOperator.restart()
重新启动已停止的作业执行时,作业将被执行,但未调用任何批处理。
小批看起来像这样
@Named
public class Notify extends AbstractBatchlet {
@Override
public String process() throws Exception {
return BatchStatus.COMPLETED.toString();
}
@Override
public void stop() throws Exception {
}
}
答案 0 :(得分:1)
重新启动属性将notify作为值,这是流中的步骤名称。可能是在重新启动期间,JBeret正在寻找一个名为notify的顶级步骤,该步骤显然不存在。