2

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

4

2 回答 2

3

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

于 2016-05-11T11:13:07.797 回答
1

这有点过于复杂(正如另一个答案所指出的,有一个问题需要考虑对未来的 Batch 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;
}
于 2016-05-12T04:46:09.140 回答