我想创建一个复合 cron 作业,它执行的作业有 2 种不同的变体。
主作业每30分钟运行一次,并执行命令A。
辅助作业应该每天运行一次,而不是安排在该 30 分钟时段的主作业,并执行命令 B。
因此执行计划如下所示:
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
等等。 每 30 分钟一班。
有什么好的、干净的方法来使用 cron 语句来实现这一点吗? 主作业是否应该检查当天的当前时间并根据该条件执行命令 B? 我宁愿拥有一个很好的现有工具来帮助定义这样的复合作业。
您可以在 NestJS 计划中使用 cron 表达式来实现相同的功能:
@Cron('0/30 0-22,23 * * *')
public mainJob() {
console.log('A')
}
此作业每 30 分钟运行一次,每天晚上 11.30 除外。
@Cron('30 23 * * *')
public secondaryJob() {
console.log('B')
}
此作业将在每天晚上 11.30 运行一次。
* * * * * *
| | | | | |
| | | | | day of week
| | | | months
| | | day of month
| | hours
| minutes
seconds (optional)