是否可以将Job
本身设为@JobScope
?
我想定期经营一份工作。作业本身应该找到数据库ID,并根据此ID执行后续步骤:
@Bean
public Job job() throws Exception {
Long id = dao.findSomeId();
return jobBuilderFactory.get("name")
.start(import())
.next(step(id))
.build();
}
private Step step(Long id) {
return stepBuilder.get("step").tasklet(new Tasklet() {
@Override execute() {
//execute a task based on the id. Eg a database cleanup
return RepeatStatus.FINISHED;
}
}).build();
}
问题:dao.findSomeId()
语句仅在第一次作业初始化期间执行一次。此后,id
对于任何作业执行始终保持不变。