在一次实际使用spring batch的过程中,在定时任务中,第一次执行Job没有出现问题,然后再次执行时不会执行job任务;
出现原因:
针对这种异常需要明确Job Instance的概念,Job Instance 是由Job的名称和执行该job的参数组成的,当执行Job时,会由于参数相同,会认为是同一个Job实例,如果该Job已经执行过,就会报出异常。判断Job是否执行过的状态是保存到Job Repository中的。
解决方法:
为了使执行参数不同,可以在参数中添加一个时间戳
JobParametersBuilder builder = new JobParametersBuilder();
builder.addDate("date", new Date());
本文探讨了在使用SpringBatch进行定时任务时遇到的一个常见问题:在首次成功执行后,再次执行同一任务时出现不执行的情况。文章深入分析了问题的原因,即JobInstance的概念和JobRepository的作用,并提供了解决方案——通过在Job参数中添加时间戳来确保每次执行都是独立的Job实例。

874

被折叠的 条评论
为什么被折叠?



