我已经实现了一个示例 spring 计划任务,其 applicationContext 如下,
<task:scheduled-tasks scheduler="myScheduler">
<task:scheduled ref="cron" method="show" cron="0/10 * * * * ?"/>
<task:scheduled ref="cron" method="show2" cron="0/15 * * * * ?"/>
</task:scheduled-tasks>
<task:scheduler id="myScheduler" pool-size="10"/>
我怎样才能停止这个调度方法?
注入ThreadPoolTaskScheduler
到另一个bean中,并调用shutdown()
。如果这不可接受,您可以配置cron
bean 接受一个标志。例如:
public class Job() {
private final AtomicBoolean stop = new AtomicBoolean(false);
public void show() {
if (stop.get()) {
return;
}
...
}
public void stop() {
stop.set(true);
}
}
请注意,这不会从调度程序中删除该作业。防止这种情况的唯一方法是获取对ScheduledFuture
并打电话cancel()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)