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 注释进行注释。
我正在使用 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 注释进行注释。