【发布时间】:2020-02-25 14:12:54
【问题描述】:
注意:JSR-352,Java EE,在 wildfly 17.0.1 上,没有 spring
我在xml中定义了以下工作:
<?xml version="1.0" encoding="UTF-8"?>
<job id="xml2json" 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">
<flow id="flow">
<step id="step1" next="step2">
<batchlet ref="xmlRead">
</batchlet>
</step>
<step id="step2">
<batchlet ref="notificationBatchlet">
</batchlet>
</step>
</flow>
</job>
我的要求是处理作业停止,我可以在 xmlRead 中覆盖 stop()(第一步)。
问题是我还需要确保始终执行第二步,但从我的测试来看,如果我在第一批 XmlRead 中运行以下代码:
if (shouldStop) {
log.warn("xmlRead - job stopped by user");
return FAILED.toString();
}
最终,作业的退出状态将是 FAILED(正确!),但永远不会执行第二步。
知道如何为这个场景建模吗?
【问题讨论】:
-
停止后为什么返回失败?
-
这只是一个测试,也与 COMPLETED 结果是一样的
标签: java java-ee-7 jsr352 jberet jbatch