Mar*_*nik 3 java spring quartz-scheduler
最近,我开始使用具有以下属性的 Quartz 持久作业存储:
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
Run Code Online (Sandbox Code Playgroud)
我在 spring 中使用基于 cron 的触发器定义了一个示例作业:
<bean id="sampleCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="sampleJobDetail"/>
<property name="cronExpression" value="0/5 * * * * ?"/>
Run Code Online (Sandbox Code Playgroud)
我看到作业确实每 5 秒执行一次,一切都很好。现在我停止该程序,这是一个简单的控制台应用程序,没有 Web 容器或任何其他内容,等待约 30 秒并重新运行我的程序。我看到的是,当调度程序启动时,作业会被触发很多次。例如,如果作业执行如下:
public class SampleJob implements Serializable, Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Executing the job Job " + new Date());
}
Run Code Online (Sandbox Code Playgroud)
}
重启后输出如下:
Executing the job Job Mon Mar 31 08:34:18 IDT 2014
Executing the job Job Mon Mar 31 08:34:18 IDT 2014
Executing the job Job Mon Mar 31 08:34:18 IDT 2014
Run Code Online (Sandbox Code Playgroud)
然后它每 5 秒再次工作一次。
Executing the job Job Mon Mar 31 08:34:20 IDT 2014
Executing the job Job Mon Mar 31 08:34:25 IDT 2014
Run Code Online (Sandbox Code Playgroud)
....
在实际应用程序中,我将实现清理数据库的作业(当然它不会每 5 秒运行一次:))但我确实计划有时服务器会重新启动并保持关闭一段时间,我希望该作业在重新启动后仅执行一次。可以这样做吗?
我使用 SchedulerFactoyBean 进行以下配置:
<bean id="quartzSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" destroy-method="destroy">
<property name="configLocation" value="classpath:scheduler-quartz.properties"/>
<property name="quartzProperties" ref="qrtzProperties"/>
<property name="autoStartup" value="true" />
<property name="triggers">
<list>
<ref bean="sampleCronTrigger"/>
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
提前致谢
尝试在sampleCronTrigger上设置misfire指令:
<property name="misfireInstructionName" value="MISFIRE_INSTRUCTION_DO_NOTHING"/>
Run Code Online (Sandbox Code Playgroud)
这是一篇关于失火指令的大文章
| 归档时间: |
|
| 查看次数: |
5292 次 |
| 最近记录: |