是否可以提供表达式来配置调度程序在其他星期日执行。
或者我尝试使用表达式0 0 6 ? * 1#2,1#4
在第2和第4个星期日运行,但它无法触发
提前致谢。
答案 0 :(得分:0)
试试你的例子,
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#4(第四个星期日)
注意:我使用了最新的石英,2.2