ssm整合quartz定时任务

参考文档:https://blog.csdn.net/qq_33678647/article/details/81285908

1.添加jar包(2个)

    <!--  定时器jar -->
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.2.1</version>
    </dependency>
    <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz-jobs</artifactId>
            <version>2.2.2</version>
    </dependency>

2.编写quartz配置文件

     application-quartz.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd
      http://www.springframework.org/schema/aop
      http://www.springframework.org/schema/aop/spring-aop.xsd">
  
    <!-- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>任务调度配置<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -->
    <!-- 实例化bean -->
    <bean id="demo" class="com.quartz.CmcatQuartz" />  <!-- 定时任务要执行的类 -->
    <!-- 配置MethodInvokingJobDetailFactoryBean -->
    <bean id="testTaskMethod"  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="demo" />
        <property name="targetMethod" value="sayHello" />  <!-- 定时任务要执行的方法 -->
        <property name="concurrent" value="false" /><!-- 设置为false时,定时任务 job结束,才会执行下一个定时任务; -->
    </bean>
    <!-- ============= 调度触发器 ============= -->
    <bean id="articleBatchRunTrigger"
          class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="testTaskMethod" />
        
       <!--  <property name="cronExpression" value="0 55 11 * * ?" /> --> <!-- 每天 11:55 执行一次 -->
       <!--  <property name="cronExpression" value="0 0/1 * * * ?" /> --><!-- 每隔1分钟执行一次 -->
        <property name="cronExpression" value="0/5 * * * * ?" />  <!-- 每5秒执行一次 -->
    </bean>
    <!--其他执行执行规则可以自行查找-->
 
    <!-- ============= 调度工厂 ============= -->
    <bean id="schedulerBean"
          class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
          lazy-init="false">
        <property name="triggers">
            <list>
                <ref bean="articleBatchRunTrigger" />
            </list>
        </property>
    </bean>
</beans>


3.将配置文件加载在web.xml中

   web.xml中加上如下配置     
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:spring/ApplicationContext-main.xml,  
            classpath:spring/ApplicationContext-code.xml
            classpath:application-quartz.xml
        </param-value>
    </context-param>

4.编写定时任务类

CmcatQuartz.java

package com.quartz;
import java.util.Date;
public class CmcatQuartz {
    public void execute() throws Exception {
        System.out.println("定时demo:"+new Date() );
    }
    public void sayHello() throws Exception {
        System.out.println("sayHello:"+new Date() );
    }
}

5.项目启动后会自动执行定时任务

猜你喜欢

转载自blog.csdn.net/fxbfxb111/article/details/87177407