提问者:小点点

石英:不支持星期几和月一日参数


我使用cron-utils库进行调度。当我同时提供DoM和DoW时,我会得到以下异常

不支持星期几和星期几参数。

我发现这个异常符合QUARTZ规范。< br >我想知道为什么不支持?因为它似乎是一个有效的要求,运行类似于“只有在星期天才在9月5日”< br >我需要写两个单独的表达式,并取其交集吗?< br >对此问题有什么推荐的解决方案?


共1个答案

匿名用户

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");