2016-05-11 8 views
2

Я знаю, как получить Идентификатор выполнения и Идентификатор экземпляра задания с использованием контекста задания. Но если я перезапущу задание, есть ли способ узнать, является ли выполнение задания первым исполнением или перезапуском в задании, например внутри читателя?JSR 352: Есть ли способ узнать, является ли конкретное выполнение задания перезапуском или нет из заданий?

+0

Учитывая, что предыдущее исполнение могло не в любом месте: на предыдущем этапе, в начале текущего шага (этот читатель является частью), вы должны спросить действительно ли вы хотите знать, перезапустили ли задание или действительно хотите узнать, выполнил ли какой-либо код, который вы собираетесь выполнить в читателе? –

+0

Я просто хочу знать, является ли текущее выполнение перезапуском или нет, в идеале, в preStep() или beforeJob() –

ответ

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; 
}