Quartz定时调度器

一、创建定时任务

package com.jy.user.job;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.jy.user.service.IUserService;

@Component
public class UserCountJob {
   @Autowired
   private  IUserService userService;
   
   public void countUser(){
	   SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
	   Date date=new Date();
	   //System.out.print(dateFormater.format(date));
		System.out.println("**************执行定时任务:统计用户人数,执行时间是"+dateFormater.format(date));
		int count=userService.doCountUser();
		System.out.println("************* 执行完毕 ,用户人数是"+count);
   }
   
}
二、配置spring-quartz.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans default-lazy-init="true">

        <!-- 定义调用对象和调用对象的方法 -->
        <bean id="timerTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <!-- 调用的类的对象-->
            <property name="targetObject">
                <ref bean="userCountJob"/>
            </property>
            <!-- 调用类中的方法 -->
            <property name="targetMethod">
                <value>countUser</value>
            </property>
            <!--将并发设置为false-->
            <property name="concurrent" value="false" />
        </bean>
        
        
        <!-- 定义触发时间 ,此处于教程上不一致,教程是spring 3.x时使用的,现在都是spring 4.x-->
        <!-- 教程是用的是 org.springframework.scheduling.quartz.CronTriggerBean -->
         <!-- spring 4.x以后使用的是 org.springframework.scheduling.quartz.CronTriggerFactoryBean -->
        <bean id="doTimerTask" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
            <property name="jobDetail">
                <ref bean="timerTask"/>
            </property>
            <!-- cron表达式  
				         常用示例:
					0 0 12 * * ? 	每天12点触发
					0 15 10 ? * * 	每天10点15分触发
					0 15 10 * * ? 	每天10点15分触发
					0 15 10 * * ? * 	每天10点15分触发
					0 15 10 * * ? 2005 	2005年每天10点15分触发
					0 * 14 * * ? 	每天下午的 2点到2点59分每分触发
					0 0/5 14 * * ? 	每天下午的 2点到2点59分(整点开始,每隔5分触发)
					0 0/5 14,18 * * ? 	每天下午的 2点到2点59分(整点开始,每隔5分触发) 每天下午的 18点到18点59分(整点开始,每隔5分触发)
					0 0-5 14 * * ? 	每天下午的 2点到2点05分每分触发
					0 10,44 14 ? 3 WED 	3月分每周三下午的 2点10分和2点44分触发
					0 15 10 ? * MON-FRI 	从周一到周五每天上午的10点15分触发
					0 15 10 15 * ? 	每月15号上午10点15分触发
					0 15 10 L * ? 	每月最后一天的10点15分触发
					0 15 10 ? * 6L 	每月最后一周的星期五的10点15分触发
					0 15 10 ? * 6L 2002-2005 	从2002年到2005年每月最后一周的星期五的10点15分触发
					0 15 10 ? * 6#3 	每月的第三周的星期五开始触发
					0 0 12 1/5 * ? 	每月的第一个中午开始每隔5天触发一次
					0 11 11 11 11 ? 	每年的11月11号 11点11分触发(光棍节)
					0/30 * * * * ?  每 30s执行一次
            
          -->
            <property name="cronExpression">
                <value>0/10 * * * * ?</value>
            </property>
        </bean>
        <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  -->
        <bean id="startQuertz" lazy-init='false'  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
           
          
            <property name="triggers">
                <list>
                      <!--作业调度器,list下可加入其他的调度器-->  
                     <ref bean="doTimerTask"/> 
                </list>
            </property>
        </bean>

</beans>
控制台输出结果:

**************执行定时任务:统计用户人数,执行时间是2017-07-04 14-44-40
**************调用业务层统计用户人数*********
************* 执行完毕 ,用户人数是336
**************执行定时任务:统计用户人数,执行时间是2017-07-04 14-44-50
**************调用业务层统计用户人数*********
************* 执行完毕 ,用户人数是958
**************执行定时任务:统计用户人数,执行时间是2017-07-04 14-45-00
**************调用业务层统计用户人数*********
************* 执行完毕 ,用户人数是917





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值