title: Quartz: skipping duplicate job fires scheduled with same fire time
body: <p>I'm new to Quartz and stuck on duplicate job runs. 
  They was caused by two triggers which has overlapping fire times.</p>
  
  <p>Is there any Quartz "out-of-the-box" functionality which will prevent duplicate fires of same job with multiple attached triggers?</p>
  
  <p>Or maybe there is some third-party <code>Trigger</code> implementation which allows to combine schedule's with proper fire time calculation which will prevent duplicate fire times?</p>
  
  <p>Or maybe i can somehow combine multiple schedules?</p>
  
  <p>Any solution will be greatly appreciated.</p>
  
  <p>Thanks</p>
  
  <p>For the clarity:</p>
  
  <pre><code>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&lt;Trigger&gt; triggers = new HashSet&lt;Trigger&gt;();
      triggers.add(TriggerBuilder.&lt;CronScheduleBuilder&gt;newTrigger().withIdentity("every 3 secs").
              withSchedule(CronScheduleBuilder.cronSchedule("0/3 * * * * ? *")).build());
      triggers.add(TriggerBuilder.&lt;CronScheduleBuilder&gt;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();
  
  }
  </code></pre>
  
  <p>And the logs:</p>
  
  <ul>
  <li>My Job at 01.11.2013T23:19:26.000 by every 2 secs</li>
  <li>My Job at 01.11.2013T23:19:27.000 by every 3 secs</li>
  <li>My Job at 01.11.2013T23:19:28.000 by every 2 secs</li>
  <li>My Job at <strong><em>01.11.2013T23:19:30.000</em></strong> by <em>every 2 secs</em></li>
  <li>My Job at <strong><em>01.11.2013T23:19:30.001</em></strong> by <em>every 3 secs</em></li>
  <li>My Job at 01.11.2013T23:19:32.000 by every 2 secs</li>
  <li>My Job at 01.11.2013T23:19:33.000 by every 3 secs</li>
  <li>My Job at 01.11.2013T23:19:34.000 by every 2 secs</li>
  <li>My Job at <strong><em>01.11.2013T23:19:36.000</em></strong> by <em>every 2 secs</em></li>
  <li>My Job at <strong><em>01.11.2013T23:19:36.001</em></strong> by <em>every 3 secs</em></li>
  <li>My Job at 01.11.2013T23:19:38.000 by every 2 secs</li>
  <li>My Job at 01.11.2013T23:19:39.000 by every 3 secs</li>
  <li>My Job at 01.11.2013T23:19:40.000 by every 2 secs</li>
  <li>My Job at <strong><em>01.11.2013T23:19:42.001</em></strong> by <em>every 2 secs</em></li>
  <li>My Job at <strong><em>01.11.2013T23:19:42.002</em></strong> by <em>every 3 secs</em></li>
  </ul>