cron表达每6个月和每个月的第二个星期五运行

时间:2015-01-07 06:24:44

标签: cron

我的cron(Java Quartz作业调度程序)表达式将在1月9日下午12点(本月的第二个星期五)触发,下一个计划应该是从1月9日到该月的第二个星期五和时间12的6个月PM。

下面的表达式会按预期工作吗?。

*  * 12 ? 1/6 6#2

此致 DAM

2 个答案:

答案 0 :(得分:2)

0 0 12 ? 1-7/6 6#2

0 --> run only at Secs :00
0  --> run only at minute :00
12 --> Runs on 12 noon
?  --> no specific value
1-7/6 --> runs only on months 1 (January) or 7 (July)
6#2 --> Second friday of the month

Next few Schedules

1.  Friday, January 9, 2015 12:00 PM  
2.  Friday, July 10, 2015 12:00 PM  
3.  Friday, January 8, 2016 12:00 PM  
4.  Friday, July 8, 2016 12:00 PM  
5.  Friday, January 13, 2017 12:00 PM  

答案 1 :(得分:0)

您的1/6需要包含6个月内完整范围。

因此,例如,1-7/6将从第1个月(1月)开始,然后转到第7个月(7月)作为下一个计划的运行,因为它涵盖的范围是1-7,步长为6. / p>

你的完整命令应该是

0 12 8-14 1-7/6 5

解读:

0 =仅在分钟时运行:00,
  12 =在中午时分运行,
  8-14仅在8-14的月份(匹配)日期间运行(第二个星期五必须只落在这些日期中的一个,并且第一个星期五不能落在其中任何一个日期),
  1-7/6仅在第1个月(1月)或7个月(7月)开始运行    5且仅在第5天(周五,因为星期日的索引为0或7)。

由于cron仅在匹配以上所有内容时运行,因此该命令将在1月和7月的第二个星期五中午12点运行。