首页 > 解决方案 > 如何立即终止作业?

问题描述

我试图在它运行时停止我的工作。但工作不会立即停止。它仍在运行,然后抛出日志:

2019-12-03 13:23:48 [main] INFO  o.s.b.c.r.s.SimpleJobRepository - Parent JobExecution is stopped, so passing message on to StepExecution
2019-12-03 13:23:48 [main] INFO  o.s.b.c.s.ThreadStepInterruptionPolicy - Step interrupted through StepExecution
2019-12-03 13:23:48 [main] INFO  o.s.batch.core.step.AbstractStep - Encountered interruption executing step remindStep in job remindEntrustPayment : Job interrupted status detected.


我怎么能立即终止工作?

标签: spring-batch

解决方案


没有办法强制立即关闭,尤其是当控件在用户代码中时。在块边界处检查StepInterruptionPolicy(默认为ThreadStepInterruptionPolicy您在日志中看到的),这是当控件返回框架并停止作业时(在停止作业部分中进行了说明)。

JobOperator#stop您可以在适当的时候使用或通过StepExecution#setTerminateOnly在代码中设置(例如使用侦听器)来要求停止作业。


推荐阅读