您能否提供表达式来配置调度程序以在替代星期天执行。
或者,我尝试使用表达式0 0 6 ? * 1#2,1#4
在第 2 和第 4 个星期日运行,但未能触发
提前致谢。
您能否提供表达式来配置调度程序以在替代星期天执行。
或者,我尝试使用表达式0 0 6 ? * 1#2,1#4
在第 2 和第 4 个星期日运行,但未能触发
提前致谢。
试试你的例子,
JobDetail job = newJob(SimpleJob.class)
.withIdentity("job1", "group1")
.build();
CronTrigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule("0 0 6 ? * 1#2,1#4"))
.build();
Date ft = sched.scheduleJob(job, trigger);
sched.start();
Date nextFireTime = trigger.getNextFireTime();
System.out.println(nextFireTime);
我得到以下异常:
Exception in thread "main" java.lang.RuntimeException:
CronExpression '0 0 6 ? * 1#2,1#4' is invalid,.
at org.quartz.CronScheduleBuilder.cronSchedule(CronScheduleBuilder.java:105)
at org.quartz.examples.example3.CronTriggerExample.run(CronTriggerExample.java:66)
at org.quartz.examples.example3.CronTriggerExample.main(CronTriggerExample.java:110)
Caused by: java.text.ParseException: Support for specifying multiple "nth" days is not imlemented.
at org.quartz.CronExpression.buildExpression(CronExpression.java:483)
at org.quartz.CronExpression.<init>(CronExpression.java:276)
at org.quartz.CronScheduleBuilder.cronSchedule(CronScheduleBuilder.java:102)
... 2 more
所以,它没有实现;是否修补 Quartz 以支持此用例,或者您可以使用 2 个不同的触发器,一个用于 1#2(第 2 个星期日),另一个用于 2#4(第 4 个星期日)
注意:我使用了最新的石英,2.2