时间范围的Cron表达式

时间范围的Cron表达式,cron,quartz-scheduler,Cron,Quartz Scheduler,我正在使用Quartz.Net在我的应用程序中安排我的作业。我只是想知道是否可以为以下场景构建CRON表达式: 在凌晨2:15到5:20之间每隔一秒 关于cron-seconds支持,和之间使用的语法似乎有所不同。但是,根据标准,支持秒 鉴于上述情况,我将创建三个CRON触发器来处理: 2:15:00-2:59:59 3:00:00-4:59:59 5:00:00-5:19:59 这将转化为(我相信): *15/12**? **3-5**? *0-20 5**? 罗比 非常感谢你的回答。我很抱歉

我正在使用Quartz.Net在我的应用程序中安排我的作业。我只是想知道是否可以为以下场景构建CRON表达式:

在凌晨2:15到5:20之间每隔一秒


关于cron-seconds支持,和之间使用的语法似乎有所不同。但是,根据标准,支持秒

鉴于上述情况,我将创建三个CRON触发器来处理:

  • 2:15:00-2:59:59
  • 3:00:00-4:59:59
  • 5:00:00-5:19:59
  • 这将转化为(我相信):

  • *15/12**?
  • **3-5**?
  • *0-20 5**?
  • 罗比

    非常感谢你的回答。我很抱歉这么晚才回复。事实上我已经离开一段时间了。你的解决方案确实有效。我必须为我指定的时间范围创建3个CRON触发器。你提到的时间范围是正确的。但是,对于您提到的3个CRON表达式。我担心它们可能无法按预期工作。这些表达式适用于以下时间范围:每天2:15AM-5:20AM

    1)
    *15-59 2**?
    -从凌晨2:15到凌晨3:00,即从凌晨2:15到凌晨2:59,每秒一次

    2)
    *0-59 3-4**?
    -从凌晨3:00到凌晨5:00,即从凌晨3:00到凌晨4:59,每秒一次

    3)
    *0-19 5**?
    -从早上5:00到早上5:20,即从早上5:00到早上5:19:59,每秒一次

    @gauteh:请注意Quartz.Net实际上支持第二个触发器


    希望这能帮助其他可能需要类似问题解决方案的人。

    这里有一个间隔触发器(每秒一次),可以清晰地转换为SimpleTrigger。你需要的是一个限制,只允许它在特定的时间范围内运行(2:15-5:20)。这可以通过使用日历(更准确地说是DailyCalendar)来实现。您可以将daily calendar设置为具有此时间范围,并将InvertTimeRange设置为true以包含该范围,而不是默认值,而不是排除该范围


    阅读和中有关日历的更多信息。

    我认为cron不支持秒。最小的时间单位是分钟,虽然理论上你可以睡1,2,3。。。去做吧。此外,cron有最大数量的作业,因此如果您的流程没有在可管理的时间内结束,新作业将无法开始。好的。非常感谢您的支持。这将是所有月份中第二个月15-59小时的每分钟:p,通常不支持秒。如果你把你的表情移到左边,它应该会起作用。我听到你在说什么,但是在Quartz和Quartz.NET的上下文中,字段是,秒,分钟,小时,月日,月日,周日和年(可选)。Marko,感谢你指出使用日历的方向。这真的很有帮助。。。