我正在使用cron-utils库进行调度。当我同时提供DoM和DoW时,我会得到以下异常
不支持星期和日期参数。
我发现这个例外与QUARTZ规范一致 我想知道为什么不支持它?因为似乎有效要求运行类似于“ 9月5日只有周日”的内容 我是否需要写两个单独的表达式并将其交叉? 什么是此问题的重新开始解决方案?
答案 0 :(得分:0)
Quartz不支持该功能。但是,这可以在cron-utils中使用自定义cron定义来实现。为了反映Quartz的相同定义,但不受月日和星期几的限制,您可以执行以下操作:
CronDefinition cronDefinition =
CronDefinitionBuilder.defineCron()
.withSeconds().withValidRange(0, 59).and()
.withMinutes().withValidRange(0, 59).and()
.withHours().withValidRange(0, 23).and()
.withDayOfMonth().withValidRange(1, 31).supportsL().supportsW().supportsLW().supportsQuestionMark().and()
.withMonth().withValidRange(1, 12).and()
.withDayOfWeek().withValidRange(1, 7).withMondayDoWValue(2).supportsHash().supportsL().supportsQuestionMark().and()
.withYear().withValidRange(1970, 2099).withStrictRange().optional().and()
.instance();
CronParser parser = new CronParser(cronDefinition);
parser.parse("0 0 0 3 * MON#1");