title: Why Quartz Scheduler runs twice?
body: <p>I have a Spring MVC web app which has Quartz Scheduler for performing special operation once in a minute. For this purpose I have a following class:</p>
  
  <pre><code>public class QuartzJobRunner {
  
      public void run() {
          log.debug("start");
  
          log.debug("end");
      }
  }
  </code></pre>
  
  <p>and XML configuration in my dispatcher servlet:</p>
  
  <pre><code>&lt;bean id="quartzJobRunner" class="com.demo.quartz.QuartzJobRunner" /&gt;
  
  &lt;bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
        p:targetObject-ref="quartzJobRunner" p:targetMethod="run"/&gt;
  
  &lt;bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"
        p:jobDetail-ref="methodInvokingJobDetail" p:cronExpression="0 0/1 * * * ?"/&gt;
  
  &lt;bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" p:triggers-ref="cronTrigger"/&gt;
  </code></pre>
  
  <p>Expected behavior here is to execute the <code>run</code> method every minute once. But the method is executed twice.</p>
  
  <p>And when I look in my logs I see that two schedulers are created:</p>
  
  <pre><code>2018-11-28 10:54:04.483 INFO [on(5)-127.0.0.1] org.quartz.impl.StdSchedulerFactory.instantiate  Using default implementation for ThreadExecutor
  2018-11-28 10:54:04.518 INFO [on(5)-127.0.0.1] org.quartz.core.SchedulerSignalerImpl.&lt;init&gt;  Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
  2018-11-28 10:54:04.519 INFO [on(5)-127.0.0.1] org.quartz.core.QuartzScheduler.&lt;init&gt;  Quartz Scheduler v.2.3.0 created.
  2018-11-28 10:54:04.520 INFO [on(5)-127.0.0.1] org.quartz.simpl.RAMJobStore.initialize  RAMJobStore initialized.
  2018-11-28 10:54:04.522 INFO [on(5)-127.0.0.1] org.quartz.core.QuartzScheduler.initialize  Scheduler meta-data: Quartz Scheduler (v2.3.0) 'org.springframework.scheduling.quartz.SchedulerFactoryBean#0' with instanceId 'NON_CLUSTERED'
    Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
    NOT STARTED.
    Currently in standby mode.
    Number of jobs executed: 0
    Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
    Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
  
  2018-11-28 10:54:04.522 INFO [on(5)-127.0.0.1] org.quartz.impl.StdSchedulerFactory.instantiate  Quartz scheduler 'org.springframework.scheduling.quartz.SchedulerFactoryBean#0' initialized from an externally provided properties instance.
  2018-11-28 10:54:04.522 INFO [on(5)-127.0.0.1] org.quartz.impl.StdSchedulerFactory.instantiate  Quartz scheduler version: 2.3.0
  2018-11-28 10:54:04.525 INFO [on(5)-127.0.0.1] org.quartz.core.QuartzScheduler.setJobFactory  JobFactory set to: org.springframework.scheduling.quartz.AdaptableJobFactory@4e6e5412
  2018-11-28 10:54:04.569 INFO [on(5)-127.0.0.1] org.quartz.core.QuartzScheduler.start  Scheduler org.springframework.scheduling.quartz.SchedulerFactoryBean#0_$_NON_CLUSTERED started.
  2018-11-28 10:54:04.570 DEBUG [SchedulerThread] org.quartz.core.QuartzSchedulerThread.run  batch acquisition of 0 triggers
  2018-11-28 10:54:04.842 INFO [on(5)-127.0.0.1] org.quartz.impl.StdSchedulerFactory.instantiate  Using default implementation for ThreadExecutor
  2018-11-28 10:54:04.844 INFO [on(5)-127.0.0.1] org.quartz.core.SchedulerSignalerImpl.&lt;init&gt;  Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
  2018-11-28 10:54:04.844 INFO [on(5)-127.0.0.1] org.quartz.core.QuartzScheduler.&lt;init&gt;  Quartz Scheduler v.2.3.0 created.
  2018-11-28 10:54:04.845 INFO [on(5)-127.0.0.1] org.quartz.simpl.RAMJobStore.initialize  RAMJobStore initialized.
  2018-11-28 10:54:04.845 INFO [on(5)-127.0.0.1] org.quartz.core.QuartzScheduler.initialize  Scheduler meta-data: Quartz Scheduler (v2.3.0) 'org.springframework.scheduling.quartz.SchedulerFactoryBean#0' with instanceId 'NON_CLUSTERED'
    Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
    NOT STARTED.
    Currently in standby mode.
    Number of jobs executed: 0
    Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
    Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
  
  2018-11-28 10:54:04.845 INFO [on(5)-127.0.0.1] org.quartz.impl.StdSchedulerFactory.instantiate  Quartz scheduler 'org.springframework.scheduling.quartz.SchedulerFactoryBean#0' initialized from an externally provided properties instance.
  2018-11-28 10:54:04.846 INFO [on(5)-127.0.0.1] org.quartz.impl.StdSchedulerFactory.instantiate  Quartz scheduler version: 2.3.0
  2018-11-28 10:54:04.846 INFO [on(5)-127.0.0.1] org.quartz.core.QuartzScheduler.setJobFactory  JobFactory set to: org.springframework.scheduling.quartz.AdaptableJobFactory@27473d57
  2018-11-28 10:54:04.864 DEBUG [SchedulerThread] org.quartz.core.QuartzSchedulerThread.run  batch acquisition of 0 triggers
  2018-11-28 10:54:04.864 INFO [on(5)-127.0.0.1] org.quartz.core.QuartzScheduler.start  Scheduler org.springframework.scheduling.quartz.SchedulerFactoryBean#0_$_NON_CLUSTERED started.
  </code></pre>
  
  <p>What might be a reason of this? Similar questions here has no explicit answers.</p>