您的位置:首页 > 编程语言 > Java开发

spring整合quartz实现定时任务

2016-04-09 16:36 609 查看
需求:spring+mybatis框架已经搭建好,需要实现一个定时任务。

一:导出相应的jar包

quartz-all-1.6.5.jar获取quartz-alll-1.6.6.jar

spring-context-support.jar

二:配置applicationContext.xml文件

在<beans></beans>元素内配置如下内容

<!--定时任务配置-->
<!-- 定义调用对象和方法,以及是否并发处理-->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="quartzServiceImpl"/>
<property name="targetMethod" value="timeScan"/>
<property name="concurrent" value="false"/>
</bean>
<!-- 定义触发时间 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobtask"/>
<!-- cron表达式 -->
<property name="cronExpression">
<value>5,10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
</property>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  -->
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime"/>
</list>
</property>
</bean>


其中:

targetObject为定义的定时方法所在的类

targetMethod为定时方法,在方法中可以写入定时执行的任务

concurrent控制并发,如果value为false则表示不会并发执行,下一个job会推迟到上一个job执行结束

定义触发时间:

这里是在5秒、10秒........执行任务

三:写具体的类和定时方法

/**
* @author Administrator 定时任务接口
*/
@Service("quartzServiceImpl")
public class QuartzServiceImpl implements QuartzService {

/*
* (non-Javadoc)
*
* @see com.paic.service.QuartzService#timeScan() 定时扫描
*/
@Override
public void timeScan() {
/**
* 可以在这里写需要执行的任务
*/
System.out.println("hello world!!!" + CommonUtil.getCurrSysTime());
}

}


这样,在定时方法中即可写入要执行的任务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: