在我的 Java 批处理作业(JSR-352,JBeret)中,我已经达到了我(可选)想要等待用户决定的地步。根据我的研究,JSR-352 规范没有提供“等待”的概念。所以问题是,还有哪些其他选择?
我目前的考虑:
- 我不希望拆分工作,因为这需要保持部件之间的连接以满足监控需求。
- 仅出于此目的将 JMS 引入项目似乎有些过头了。
- 通过 JPA 或 JDBC 轮询数据库似乎也不是一个好的解决方案。
- 作业启动时具体信息尚不可用,因此不能作为作业参数传递。
import javax.batch.api.Decider;
import javax.batch.runtime.StepExecution;
import javax.inject.Named;
@Named
public class AwaitingDecider implements Decider {
@Override
public String decide(final StepExecution[] executions) {
String decision = // how to wait here?
return decision;
}
}