关于Cron表达式永不执行
一、Spring定时任务@Scheduled中:
配置为 “-” 即可:
@Scheduled(cron = "${pcliu.task.cron:-}")
原因分析,翻看源码ScheduledTaskRegistrar:
public static final String CRON_DISABLED = "-";
/**
* Add a {@link Runnable} task to be triggered per the given cron {@code expression}.
* <p>As of Spring Framework 5.2, this method will not register the task if the
* {@code expression} is equal to {@link #CRON_DISABLED}.
*/
public void addCronTask(Runnable task, String expression) {
if (!CRON_DISABLED.equals(expression)) {
addCronTask(new CronTask(task, expression));
}
}
二、其他
配置为万能的 “* * * 31 2 ?”
原因:该表达式就是指2月31日执行,这个日期不存在的。