我的应用程序从属性文件加载一些cron模式。我正在使用这样的@Scheduled
注释:
@Scheduled(cron = "${config.cronExpression:0 0 11,23 * * *}")
现在我想禁用一些任务,最简单的解决方案是输入一个永远不会运行的cron模式。为了做到这一点,我考虑使用仅在过去的特定日期执行的cron表达式。但不幸的是,Spring cron表达式不允许在过去添加一年或一个日期。
有没有任何模式永远不会运行?
如果它是一个cron表达式,你可以在下面使用它使得cron在2099上运行
59 59 23 31 12 ? 2099
但是春季调度程序不需要一年的时间作为输入。这是我发现将其推迟一段时间。以下将于2月29日进行,这将是闰年。
0 0 0 29 2 ?
根据Javadocs,从Spring 5.1.0开始,@Scheduled
注释可以接受“ - ”作为禁用cron触发器的cron表达式。
特殊值“ - ”表示禁用的cron触发器,主要用于由$ {...}占位符解析的外部指定值。
现在不可能,检查网址https://jira.spring.io/browse/SPR-10376。