I need to cancel Spring timer execution or at least change the execution frequency based on some conditions. Was using both org.springframework.scheduling.quartz.SimpleTriggerBean
and org.springframework.scheduling.timer.ScheduledTimerTask
. Cannot find the way how to do it.
NOTE: This is for Spring 3.0+
Read Spring documentation on scheduling tasks
Use a TaskScheduler
service, such as a TimerManagerTaskScheduler
or ThreadPoolTaskScheduler
.
Schedule your task by calling some TaskScheduler.schedule*()
method and store the returning ScheduledFuture
.
When you want to cancel execution, invoke ScheduledFuture.cancel()
. That will stop further invocations of your task. At this time, you can reschedule if you want by calling TaskScheduler.schedule*()
for your task with different parameters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With