Cron QUARTZ:不支持星期几和月日参数

Cron QUARTZ:不支持星期几和月日参数,cron,quartz-scheduler,Cron,Quartz Scheduler,我正在使用库进行调度。当我同时提供DoM和DoW时,我会得到以下异常 不支持星期几和月日参数 我发现此异常与石英规格一致。 我想知道为什么不支持它?因为似乎只有在周日才能在9月5日这样的时间运行才是有效的要求 我需要写两个单独的表达式并取其交点吗? 这个问题的重新开始解决方案是什么 Quartz不支持此功能。但是,这可以通过自定义cron定义在中实现。为了反映的定义相同,但不受月日和周日的限制,您可以执行以下操作: CronDefinition CronDefinition= CronDefin

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

不支持星期几和月日参数

我发现此异常与石英规格一致。
我想知道为什么不支持它?因为似乎只有在周日才能在9月5日这样的时间运行才是有效的要求 我需要写两个单独的表达式并取其交点吗?

这个问题的重新开始解决方案是什么

Quartz不支持此功能。但是,这可以通过自定义cron定义在中实现。为了反映的定义相同,但不受月日和周日的限制,您可以执行以下操作:

CronDefinition CronDefinition=
CronDefinitionBuilder.defineCron()
.withSeconds()。withValidRange(0,59)。和()
.withMinutes().withValidRange(0,59)。和()
.withHours().withValidRange(0,23)和()
.withDayOfMonth().withValidRange(1,31).supportsL().supportsW().supportsLW().supportsQuestionMark()和()
.withMonth().withValidRange(1,12)和()
。withDayOfWeek()。withValidRange(1,7)。withMondayDoWValue(2)。SupportsAsh()。supportsL()。supportsQuestionMark()和()
.withYear().withValidRange(1970、2099)。WithTrictrange().optional()和()
.instance();
CronParser=新的CronParser(cronDefinition);
parser.parse(“03*MON#1”);

如果您的库不支持它,您就无法真正使用它。它不受支持,可能是因为它的边缘情况非常罕见,没有被涵盖。例如,粘贴这个:0 5*SUN*在这里,它的出现非常罕见。从我的经验来看,cron实现只在适合最常见的表达式的情况下进行测试,当您尝试做一些奇特的事情时,它不支持。您可以做的是像05***一样实现它,并检查脚本内部是否是星期天。然后运行您的逻辑。