我使用cron-utils库进行调度。当我同时提供DoM和DoW时,我会得到以下异常
不支持星期几和星期几参数。
我发现这个异常符合QUARTZ规范。< br >我想知道为什么不支持?因为它似乎是一个有效的要求,运行类似于“只有在星期天才在9月5日”< br >我需要写两个单独的表达式,并取其交集吗?< br >对此问题有什么推荐的解决方案?
Quartz不支持该功能。但是,这可以在具有自定义cron定义的cron-utils中实现。为了反映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");