Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringCrontab模式:每个工作日的特定时间_Java_Linux_Spring_Unix_Cron - Fatal编程技术网

Java SpringCrontab模式:每个工作日的特定时间

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 如果您只希望有一个表达式,并且您对一天中最后一次触发时间(运行

是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-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