有没有办法启动或停止使用上下文文件或@Scheduled注释初始化的
Spring Scheduled Tasks安排的任务?
我想在需要时启动任务,并在不再需要运行任务时停止它.
如果这是不可能的,那么将任何弹簧变量注入线程的替代方法是什么?
解决方法
停止已注册的@Scheduled bean不是标准功能,因为在org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor中对它们的访问是私有的.
如果您需要管理它们运行的时间,您需要以编程方式注册它们(TriggerTask):请参阅org.springframework.scheduling.annotation.SchedulingConfigurer的文档.在org.springframework.scheduling.config.TriggerTask类型中,有一个返回org.springframework.scheduling.Trigger类型的方法.在那里你可以管理下一个执行时间.
在程序化注册的情况下,TriggerTasks可以是bean.