Spring+Quartz 仅当上一个作业完成时才执行作业

Spring+Quartz Fire job execution only if previous has finished

我正在使用 SpringMVC (4.x) 和 Quartz (2.x)。我正在设置一个 bean defnition 文件来触发一个简单的作业,但是要确保只有在该作业的先前执行已经完成时才触发该作业。有没有我可以通知 SimpleTriggerFactoryBean 以避免并发执行的参数?

通过使用 repeatInterval 属性,我不会同时触发作业吗?

我的 Quartz Bean 定义 XML

<bean id="autoPusherJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
    <property name="jobClass" value="br.teste.AutoMessagePusherJob" />
    <property name="jobDataAsMap">
        <map>
            <entry key="userName" value="SystemCronJob"/>
            <entry key="message">
                <bean class ="br.teste.model.Message"/>
            </entry>            
        </map>
    </property>
    <property name="durability" value="true" />
</bean>

<bean id="simpleTrigger"  class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
    <property name="jobDetail" ref="autoPusherJob" />
    <property name="startDelay" value="1000" />
    <property name="repeatInterval" value="1000" />
</bean>


<bean  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="jobDetails">
        <list>
            <ref bean="autoPusherJob" />
        </list>
    </property>

    <property name="triggers">
        <list>
            <ref bean="simpleTrigger" />
        </list>
    </property>
</bean>

您的作业 class 需要使用 DisallowConcurrentExecution 注释进行注释。