QUARTZ:不支持星期和日期参数

时间:2017-12-12 15:15:26

标签: cron quartz-scheduler

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

  

不支持星期和日期参数。

我发现这个例外与QUARTZ规范一致 我想知道为什么不支持它?因为似乎有效要求运行类似于“ 9月5日只有周日”的内容 我是否需要写两个单独的表达式并将其交叉? 什么是此问题的重新开始解决方案?

1 个答案:

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