如何在@JobScope上进行弹簧批量作业?

时间:2015-11-09 13:11:26

标签: java spring spring-batch

是否可以将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对于任何作业执行始终保持不变。

0 个答案:

没有答案