我试图在工作运行时停止工作。但是工作不会立即停止。它仍在运行,然后抛出日志:
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.
我如何立即终止工作?
答案 0 :(得分:1)
没有办法强制立即关闭,尤其是当控件在用户代码中时。 StepInterruptionPolicy
(默认为您在日志中看到的ThreadStepInterruptionPolicy
)是在块边界检查的,这是控件返回到框架并停止作业的时间(在{{ 3}}部分。
您可以要求使用JobOperator#stop
或在适当的时候在代码中设置StepExecution#setTerminateOnly
(例如,使用侦听器)来要求停止工作。