Java SpringCrontab模式:每个工作日的特定时间
是SpringCrontab语法的文档 我想在每个工作日的14:40、14:45、14:50、14:55和15:00运行一个任务,但我不知道如何用Crontab模式来表示。到目前为止,我得出的最接近的结论是:Java SpringCrontab模式:每个工作日的特定时间,java,linux,spring,unix,cron,Java,Linux,Spring,Unix,Cron,是SpringCrontab语法的文档 我想在每个工作日的14:40、14:45、14:50、14:55和15:00运行一个任务,但我不知道如何用Crontab模式来表示。到目前为止,我得出的最接近的结论是: 0 40/5 14 * * MON-FRI 但这不是15点开始的 这完全可以用Crontab模式来表示吗?您需要将其拆分为两个表达式: 0 40-55/5 14 * * MON-FRI 0 0 15 * * MON-FRI 如果您只希望有一个表达式,并且您对一天中最后一次触发时间(运行
0 40/5 14 * * MON-FRI
但这不是15点开始的
这完全可以用Crontab模式来表示吗?您需要将其拆分为两个表达式:
0 40-55/5 14 * * MON-FRI
0 0 15 * * MON-FRI
如果您只希望有一个表达式,并且您对一天中最后一次触发时间(运行前一分钟)没有意见,则可以使用:
0 40-55/5,59 14 * * MON-FRI
Spring内部使用CronSequenceGenerator
为cron表达式生成下一个触发时间。您可以使用它来验证cron表达式
例如,要验证0 40-55/5,59 14**MON-FRI的下几次触发时间,请执行以下操作:
CronSequenceGenerator generator = new CronSequenceGenerator("0 40-55/5,59 14 * * MON-FRI");
Date d = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());
for (int i = 0; i < 10; i++) {
d = generator.next(d);
System.out.println(d);
}
Tue Jun 02 14:40:00 HKT 2020
Tue Jun 02 14:45:00 HKT 2020
Tue Jun 02 14:50:00 HKT 2020
Tue Jun 02 14:55:00 HKT 2020
Tue Jun 02 14:59:00 HKT 2020
Wed Jun 03 14:40:00 HKT 2020
Wed Jun 03 14:45:00 HKT 2020
Wed Jun 03 14:50:00 HKT 2020
Wed Jun 03 14:55:00 HKT 2020
Wed Jun 03 14:59:00 HKT 2020