我已经用applicationContext实现了一个示例spring调度任务,如下所示:
<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"/>如何停止此调度方法?
发布于 2012-10-02 22:30:49
将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()。
发布于 2012-10-02 22:38:32
这取决于你所说的“停止”是什么意思。
系统变量示例。
<task:scheduled-tasks scheduler="myScheduler">
<task:scheduled ref="cron" method="show" cron="#{systemProperties['chron1']}"/>
<task:scheduled ref="cron" method="show2" cron="#{systemProperties['chron2']}"/>
https://stackoverflow.com/questions/12692083
复制相似问题