我用 @Scheduled 和硬编码的 cron 表达式安排了大约 10 个作业,如下所示:
@Scheduled(cron = "* * 1 * * *")
public void testMethod(){
doSomething();
}
现在我希望能够通过数据库更新这个 cron 表达式并在运行时重新安排特定的作业。
有人知道怎么做吗?
谢谢
请您参考如下方法:
如果你想在运行时配置作业的调度,我认为你不能使用注释@Scheduled
.
您可以使用自己的调度程序代替 Spring documentation :
scheduler.schedule(task, new CronTrigger("0 15 9-17 * * MON-FRI"));
然后,如果你想改变配置,你可以取消调度并创建一个新的。
TaskScheduler
返回 ScheduledFuture
你应该保存在某个地方,它可以用 cancel(...)
取消方法。