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