我正在使用Quartz.Net在我的应用程序中安排我的工作。我只是想知道是否可以构建以下场景的CRON表达式:
每天在凌晨2:15到5:20之间
robyaw,
非常感谢您的回答。我为这种回复延迟道歉。我实际上已经离开了一段时间。您的解决方案确实有效我必须在我指定的时间范围内创建3个CRON触发器。你提到的时间范围是正确的。但是,对于您提到的3个CRON表达式。我担心他们可能无法按预期工作。这些表达适用于时间范围:凌晨2:15 - 凌晨5:20 - 每天
1)* 15-59 2 * * ?
- 每天从凌晨2:15到凌晨3:00,即凌晨2:15:00到凌晨2:59:59
2)* 0-59 3-4 * * ?
- 每天从凌晨3:00到凌晨5:00,即凌晨3:00:00到凌晨4:59:59
3)* 0-19 5 * * ?
- 每天从凌晨5:00到凌晨5:20,即凌晨5:00:00到5:19:59 AM
@gauteh:请注意,Quartz .Net实际上支持第二次触发。
希望这有助于其他可能需要解决类似问题的人。
关于cron seconds支持,UNIX cron tool和CRON Expression维基百科文章之间使用的语法似乎有些不同。然而,根据Quartz CRON Documentation,支持秒。
鉴于上述情况,我将创建三个CRON触发器来处理:
哪个会翻译成(我相信):
* 15/1 2 * * ?
* * 3-5 * * ?
* 0-20 5 * * ?
这里有一个间隔触发器(每秒)可以干净地转换为SimpleTrigger。你需要它是一个限制,只允许它在特定的时间范围内运行(2:15 - 5:20)。这可以通过使用日历,更准确地说是DailyCalendar来实现。您可以将每日日历设置为具有此时间范围,并将InvertTimeRange设置为true以包括范围而不是默认值来排除范围。
阅读更多关于the tutorial和DailyCalendar API documentation日历的信息。