如何安排 crontrigger 在一周中的某些日子 运行?

How to schedule crontrigger to run on certain days of the week?

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

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' is invalid.

有没有一种方法可以表达我想要什么,即告诉调度程序我打算在一周的哪几天 运行 该工作?

你可以尝试这样的表达(例如你想开始 8:05 Sunday 0 表示星期日,6 表示星期六)

5 8 * * 0,6

你可以查看这个link

https://crontab.guru/every-weekend

你能试试这个吗?

0 0 0 ? * SUN,SAT *

参考:This