如何安排crontrigger在一周的某些天运行?

时间:2019-10-14 10:43:34

标签: java cron schedule crontrigger

我有工作要在周六和周日执行,而不是在工作日执行。我是这样安排的:

myTriggerBuilder.withSchedule(cronSchedule("0 0 0 * * ?")).build();

这将每天在服务器时间00:00:00运行。但是,我想使其仅在星期六和星期日起作用,但是在美国日历中,星期六是一周的结尾,而星期日是一周的开始。我一直在搜索docs的示例或说明,这些示例或说明解释了如何指定一周中的某些天而不是间隔,但是文档要么不提供该信息,要么我错过了。我已经尝试过这种方式:

myTriggerBuilder.withSchedule(cronSchedule("0 0 0 * * SAT,SUN")).build();

但是,整个事情崩溃了:

  

java.lang.RuntimeException:CronExpression'0 0 0 * * SAT,SUN'是   无效。

是否可以表达我想要的内容,即告诉调度程序我打算在一周中的哪几天进行工作?

2 个答案:

答案 0 :(得分:1)

您可以尝试类似的表达式(例如,您想从星期日0:8开始,星期日为0,星期六为6)

5 8 * * 0,6

您可以检查此链接

https://crontab.guru/every-weekend

答案 1 :(得分:1)

可以请您试试吗?

0 0 0 ? * SUN,SAT *

引用:This