JSR 352:有没有办法从作业中判断特定作业执行是否重启?

时间:2016-05-11 09:52:46

标签: jsr352 java-batch

我知道如何使用作业上下文获取作业的执行ID和实例ID。但是,如果我重新启动一个作业,是否有办法知道作业执行是第一次执行还是在作业内重新启动,例如在读者内部?

2 个答案:

答案 0 :(得分:3)

不,但有一个未解决的问题要求: https://java.net/bugzilla/show_bug.cgi?id=7473

答案 1 :(得分:1)

这有点过于复杂(正如另一个答案所指出的那样,为了考虑未来批处理1.1的增强,已经开启了一个问题。)

你可以这样做:

//
// Assumes JobContext injected into 'jobCtx' field
//
private boolean isRestart() {
    JobOperator jo = BatchRuntime.getJobOperator();
    JobInstance jobInstance = jo.getJobInstance(jobCtx.getExecutionId());
    int numExecutions = jo.getJobExecutions(jobInstance).size();
    return numExecutions > 1;
}