Java 如何停止使用spring任务计划的作业
我已经实现了一个示例spring计划任务,其applicationContext如下所示Java 如何停止使用spring任务计划的作业,java,spring,Java,Spring,我已经实现了一个示例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 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()
取决于您所说的“停止”是什么意思
<task:scheduled-tasks scheduler="myScheduler">
<task:scheduled ref="cron" method="show" cron="#{systemProperties['chron1']}"/>
<task:scheduled ref="cron" method="show2" cron="#{systemProperties['chron2']}"/>
Hmm,你能给我写一个示例方法吗?停止我的taks schedule method show()?好的,那么我如何从调度程序中删除作业?能给我一个axample吗?获取该工作的参考资料,然后打电话取消。我已经在我的回答中添加了这个。我如何才能引用该作业?您必须手动添加到
任务调度器
,即不使用Spring配置。