在周一至周日7:20 AM-8:30PM之间每隔x分钟触发一次Cron表达式

问题描述

在Quartz.Net中,我如何表达一个计划作业,该计划作业在周一至周日上午7:20 AM-8:30PM之间每x分钟触发一次?我有些困惑,测试需要一些时间来确认。

根据https://www.freeformatter.com/cron-expression-generator-quartz.html,它将是“ 0 20-30 7-18?* MON,TUE,WED,THU,FRI,SAT,SUN *”,但是我该如何表达7:20-18 :30?

上面的表达式会生成一个类似这样的执行,这不是我期望的。

2020年9月15日星期二07:20:00 星期二九月15 07:21:00 UTC 2020 星期二九月15 07:22:00 UTC 2020 星期二九月15 07:23:00 UTC 2020 星期二九月15 07:24:00 UTC 2020 星期二九月15 07:25:00 UTC 2020 星期二九月15 07:26:00 UTC 2020 星期二九月15 07:27:00 UTC 2020 星期二九月15 07:28:00 UTC 2020 星期二九月15 07:29:00 UTC 2020

描述为“每个月的每个星期一,星期二,星期三,星期三,星期四,星期五,星期六和星期日的第二个00:00:在20:30和30:30之间的每一分钟,在上午7:00和18:00之间的每小时”。 >

解决方法

根据这些信息,由于您无法指定确切的时间,因此实际上将需要三个cron表达式:

 0 00-30/X 18-19 ? * *
0 20-59/X 07-08 ? * *
0 0/X 08-18 ? * *

我摆脱了周一至周日,因为这意味着每一天。第一个是在下午6点至下午6:30之间运行。第2个cron表达式在上午7:20到上午8点之间运行。第三轮在上午8点至下午6点之间运行。

/ X每隔X分钟运行一次。

,

如果您使用的是quartz.net,则可能需要查看其他触发器类型而不是cron表达式。

看看.WithDailyTimeIntervalSchedule

    .WithDailyTimeIntervalSchedule(s=>
            s.WithIntervalInMinutes(15)
            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(7,20))
            .EndingDailyAt(TimeOfDay.HourAndMinuteOfDay(20,30))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...