终止@计划的Spring Batch作业

时间:2019-01-16 17:56:35

标签: spring spring-boot spring-batch spring-scheduled

我正在努力解决以下问题。我有一个单独的Spring Batch Job,它通过<cfqueryparam>方法每10分钟执行一次。如果作业执行失败,则需要终止计划。我知道怎么做到的
 a)致电@Scheduled  或
 b)制作自定义ScheduledAnnotationBeanPostProcessor::postProcessBeforeDestruction(),存储ThreadPoolTaskScheduler,然后取消()删除它们,

,但是在两种情况下,问题都是相同的:成吨的Spring Batch ScheduledFutures,因为它不再能够提交元数据。而且,尽管没有更多TransactionSystemExceptions个任务要运行,该应用程序也不会终止...

有什么想法吗?

干杯!

1 个答案:

答案 0 :(得分:1)

如果(从标记中)猜测出您正在使用Spring Boot。因此,在这种情况下,请注意,引导会发出类型为ApplicationEvent的{​​{1}},其中JobExecutionEvent为有效负载。因此,您可以创建一个实现JobExecution的bean,并在作业失败时正常关闭应用程序上下文。

希望这会有所帮助。