我用 @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(...) 取消方法。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!