首页 > 解决方案 > 仅在星期一运行的 Cron 表达式

问题描述

我正在使用石英表达式创建一个触发器,该触发器应该只在星期一执行,day of month而不应该是1.

我已经知道该0 5 0 2-31 * MON表达式不起作用,因为Specifying both a day-of-week and a day-of-month parameter is not implemented. 这个问题有什么解决方法吗?我怎样才能做到这一点?

总而言之,如果一个月的第一天是星期一,则不应执行上述表达式,但对于该月的其他星期一,则应执行。

标签: spring-bootcronquartz-schedulerquartzcrontrigger

解决方案


由于未实现对指定星期几和月份参数的支持,您可以尝试以下操作:

@Scheduled(cron = "0 5 0 ? * MON")
private void doTask(){
    if(LocalDate.now().getDayOfMonth() != 1){
        //your code here
    }
}

您还可以在此处检查生成用于石英的玉米。


推荐阅读