<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
<bean id="publicWebServiceJob" class="cn.org.site.business.quartz.PublicWebServiceScheduleJob"/>
<bean id="publicWebServiceJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="publicWebServiceJob" />
<property name="targetMethod" value="doJob"></property>
<!--默认允许并发执行,设置为false 防止并发执行 发生死锁问题 -->
<property name="concurrent" value="false"/>
</bean>
<!-- quartz一分钟执行一次的实现方式 -->
<!-- <bean id="publicWebServiceTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="publicWebServiceJobDetail"></property>
<property name="cronExpression" value="0 */1 * * * ?"></property>
<property name="description" value="定时"></property>
</bean>-->
<!-- quartz实例化5秒后执行一次job的方式 -->
<bean id="publicWebServiceTriggerBean" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="publicWebServiceJobDetail" />
<property name="startDelay" value="5000" /> <!-- 启动延迟 单位/毫秒-->
<property name="repeatCount" value="0" /> <!-- 重复次数 -->
</bean>
<!-- 触发器-->
<bean id="schedulerFactoryBean-em" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<ref bean="publicWebServiceTriggerBean"/>
</list>
</property>
</bean>
</beans>
按说只在tomcat启动时执行一次,我们可以用监听器来实现,但是有些开发框架中因特殊场景不适合用监听器。那么定时任务也可以实现只执行一次的操作。配置如下&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc=...
红色框里面的为cron表达式,从左往右分别为秒/分/时/日/月/年
具体是那一天
执行
一次
就不用加(?)问号了,没有必要。
cron表达式这样写就可以了,只会
执行
一次
,然后就不会再
执行
了。
Quartz
中Job只
执行
一次
参考:[url]http://zxb1985.iteye.com/blog/1841399[/url]
目的是让前台用户不等待
执行
完,悄悄地在后台
执行
: 下面是1秒钟后立即
执行
,并且只
执行
一次
。
[code="java"]SimpleTrigger simpleTrigger = TriggerBuilder.newTrigger()
项目中要求job批处理逻辑,仅处理
一次
就行。原本打算使用前端开关触发,但项目组要求改为批处理方式跑批。介于这个批处理的特殊性,不进行周期性触发,仅触发
一次
即可,下面介绍通过配置方式
实现
项目启动,
quartz
实例化后指定时间进行单次触发。
周期性触发
<!-- 具体job类 -->
<bean id="myJobDetail" class="org.springframework.scheduling.
quartz
.JobDetailFactoryBean"