Spring整合quartz实现定时器

第一步:引入依赖

<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz</artifactId>
  <version>2.1.0</version>
</dependency>

注意:Spring3.1以下的版本必须使用quartz1.x系列,3.1以上的版本才支持quartz 2.x
我的spring版本是3.1以上的,所以这里引入2.X。这里需要注意下你的spring-context和spring-context-support已经导入且版本>3.1

为什么导入spring-context-support,解释如下:
<!-- 
          含支持UI模版(Velocity,FreeMarker,JasperReports),邮件服务,脚本服务(JRuby),缓存Cache(EHCache),
          任务计划Scheduling(quartz)方面的类。外部依赖spring-context, (spring-jdbc, Velocity, FreeMarker,
          JasperReports, BSH, Groovy, JRuby, Quartz, EHCache)
          -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context-support</artifactId>
  <version>4.3.5.RELEASE</version>
</dependency>

第二步:创建spring-quart.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    
    <!--定时器一:测试定时任务 1分钟-->
    <!--定时任务所在类路径-->
    <bean name="gpOrderFlush" class="com.service.UserService"/>
    <bean id="jobDetail_1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <ref bean="gpOrderFlush" />
        </property>
        <!--定时任务方法 本实例为UserService.task( )方法-->
        <property name="targetMethod">
            <value>task</value>
        </property>
        <property name="concurrent" value="false" />
    </bean>
    <!-- 如果quartz的版本 <2 那么此处是 org.springframework.scheduling.quartz.CronTriggerBean -->
    <bean id="cronTrigger_1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail">
            <ref bean="jobDetail_1" />
        </property>
        <!--定时任务间隔时间,此处为一分钟-->
        <property name="cronExpression">
            <value>0 0/1 * * * ?</value>
        </property>
    </bean>

    
    <!-- 启动工作 -->
    <bean id="SpringJobSchedulerFactoryBean"
          class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
            <!--定时任务一启动-->
                <ref bean="cronTrigger_1" />
            </list>
        </property>
        <property name="autoStartup" value="true"></property>
    </bean>
</beans>

第三步:在web.xml中引入

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath:spring-quartz.xml
    </param-value>
</context-param>

定时任务到此已经配置好了,启动项目观察控制台:

53095631a494ceda21e4df06e6569ae2f0a.jpg

转载于:https://my.oschina.net/u/3387320/blog/2996775

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值