我知道如何使用作业上下文获取作业的执行ID和实例ID。但是,如果我重新启动一个作业,是否有办法知道作业执行是第一次执行还是在作业内重新启动,例如在读者内部?
答案 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;
}