我是Quartz的新手,一直停留在重複的作業上。 它們是由兩個觸發時間重疊的觸發器引起的。石英:跳過火災時間相同的重複作業火災
是否有石英「亂用」的功能,這將防止同樣的工作,重複的火災有多個連接觸發器?
或者,也許有一些第三方Trigger
實施,允許結合的時間表與合適的發射時間的計算,這將防止重複明火時代?
或者我可以以某種方式組合多個時間表?
任何解決方案將不勝感激。
感謝
對於清晰度:
public static class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("My Job at " + DateUtils.toDateTimeString(context.getFireTime()) + " by " +
context.getTrigger().getKey().getName());
}
}
startScheduler() {
final Set<Trigger> triggers = new HashSet<Trigger>();
triggers.add(TriggerBuilder.<CronScheduleBuilder>newTrigger().withIdentity("every 3 secs").
withSchedule(CronScheduleBuilder.cronSchedule("0/3 * * * * ? *")).build());
triggers.add(TriggerBuilder.<CronScheduleBuilder>newTrigger().withIdentity("every 2 secs").
withSchedule(CronScheduleBuilder.cronSchedule("0/2 * * * * ? *")).build());
final Scheduler scheduler = new StdSchedulerFactory(properties).getScheduler();
scheduler.scheduleJob(JobBuilder.newJob(MyJob.class).build(), triggers, false);
scheduler.start();
}
,並將日誌:
- 我的工作在01.11.2013T23:19:26.000每2秒
- 我的工作在01.11.2013T23:19:27.000由每3秒
- 我的工作在01.11.2013T23:19:28.000每2 SE CS
- 我在01.11.2013T23工作:19:30.000通過每2秒
- 我的工作在01.11.2013T23:19:30.001通過每3秒
- 我的工作在01.11.2013T23:19:32.000每2秒
- 我的工作在01.11.2013T23:19:33.000每3秒
- 我的工作在01.11.2013T 23:19:34.000每2秒
- 我在01.11.2013T23工作:19:36.000通過每2秒
- 我在01.11.2013T23工作:19:36.001通過每3秒
- 我在01.11.2013T23工作:19:38.000每2秒
- 我的工作在01.11.2013T23:19:39.000由每3秒
- 我在01.11.2013T23工作:19:40.000每2秒
- 我在01.11.2013T23工作:19:42.001通過每2秒
- 我的工作在01.11.2013T23: 19:42。002通過每3秒