Я знаю, как получить Идентификатор выполнения и Идентификатор экземпляра задания с использованием контекста задания. Но если я перезапущу задание, есть ли способ узнать, является ли выполнение задания первым исполнением или перезапуском в задании, например внутри читателя?JSR 352: Есть ли способ узнать, является ли конкретное выполнение задания перезапуском или нет из заданий?
2
A
ответ
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;
}
3
Нет, но есть открытый вопрос просит, что: https://java.net/bugzilla/show_bug.cgi?id=7473
Учитывая, что предыдущее исполнение могло не в любом месте: на предыдущем этапе, в начале текущего шага (этот читатель является частью), вы должны спросить действительно ли вы хотите знать, перезапустили ли задание или действительно хотите узнать, выполнил ли какой-либо код, который вы собираетесь выполнить в читателе? –
Я просто хочу знать, является ли текущее выполнение перезапуском или нет, в идеале, в preStep() или beforeJob() –