我的cron(Java Quartz作业调度程序)表达式将在1月9日下午12点(本月的第二个星期五)触发,下一个计划应该是从1月9日到该月的第二个星期五和时间12的6个月PM。
下面的表达式会按预期工作吗?。
* * 12 ? 1/6 6#2
此致 DAM
答案 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点运行。