我需要取消Spring计时器的执行,或者至少根据某些条件更改执行频率。正在使用org.springframework.scheduling.quartz.SimpleTriggerBean
和org.springframework.scheduling.timer.ScheduledTimerTask
两个类库,但无法找到如何实现。
我需要取消Spring计时器的执行,或者至少根据某些条件更改执行频率。正在使用org.springframework.scheduling.quartz.SimpleTriggerBean
和org.springframework.scheduling.timer.ScheduledTimerTask
两个类库,但无法找到如何实现。
注意:本文适用于Spring 3.0以上版本。
阅读关于定时任务的Spring文档
使用一个TaskScheduler
服务,例如TimerManagerTaskScheduler
或ThreadPoolTaskScheduler
。
通过调用某些TaskScheduler.schedule*()
方法并存储返回的ScheduledFuture
来安排任务。
当你想取消执行时,请调用ScheduledFuture.cancel()
。这将停止任务的进一步调用。此时,如果需要重新安排任务,请使用不同的参数调用TaskScheduler.schedule*()
。
<task:scheduler id="myScheduler" />
然后你可以获取 myScheduler
并调用 cancel()
。 - Andre
<bean>
元素实例化TaskScheduler,并将其注入到需要使用它的位置。 - gpechecancel()
方法的布尔参数是 mayInterruptIfRunning。 - Klesun