Quartz定时任务整合spring基本使用

Quartz定时任务

1.需要导入的依赖

quartz定时任务所需要的依赖
因为使用的是ssm框架,而spring已经集成好了quartz,所以我们也需要导入一个spring与quartz关联的依赖包,这样我们在spring中就可以直接使用quartz的相关内容乐。
在这里插入图片描述
spring整合quartz的包下

2.编写要执行的job类

package com.ceh.quartz;

public class MyJob {
    
    

    public void job(){
    
    
        System.out.println("Hello Quartz!");
    }

}

3.需要使用的类

需要使用的类

4.根据上图的类,配置环境

<!--配置quartz-->
    <!--1.把自定义的job类放入spring工厂中-->
    <bean id="myJob" class="com.ceh.quartz.MyJob"></bean>
    <!--2.配置你要执行的工作-->
    <bean id="jobDetailFactoryBean" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!--指定任务的类-->
        <property name="targetObject" ref="myJob" />
        <!--指定任务中的方法-->
        <property name="targetMethod" value="job" />
    </bean>
    <!--配置时间间隔-->
    <bean id="cronTriggerFactoryBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    	<!--你要配置那个任务的时间间隔-->
        <property name="jobDetail" ref="jobDetailFactoryBean" />
        <!--时间间隔的表达式-->
        <property name="cronExpression" value="0/3 * * * * ?" />
    </bean>
    <!--执行定时,课程表-->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <!--将指定的任务注入-->
        <property name="triggers">
            <array>
                <ref bean="cronTriggerFactoryBean"></ref>
            </array>
        </property>
    </bean>

注意:
配置MethodInvokingJobDetailFactoryBean里面的参数时,必须要存在下图的两个参数之一,否则会报错
在这里插入图片描述

出现的错误:
在这里插入图片描述

以上配置配置完成,即可启动项目:
在这里插入图片描述

5.cron表达式

*  *  *  *  *  ?   *
秒 分 时 日  月 星期 年
	上边演示中的表达式即为每年每月每日每时每分,从0秒开始,每三秒执行一次

允许的特殊符号

秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /

*,代表和的意思
*-代表之间
**通配符,代表所有
*x/y 从x开始,每y执行一次
*?只能在日和星期存在,一个表达式中,日和星期只能存在一个,不想要那个,就使用?
*L代表最后的意思(Last,放在日上,就是每个月最后一天)
*W和日期临近的工作日,如果选择的日是周日,那么他就会选择周一代表日
*月份和星期可以使用英文缩写
*星期是1-7也就是7是周六

摘录
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点
“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期间的每1分钟触发
“0 0/5 14 * * ?” 在每天下午2点到下午2:55期间的每5分钟触发
“0 0/5 14,18 * * ?” 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
“0 0-5 14 * * ?” 在每天下午2点到下午2:05期间的每1分钟触发
“0 10,44 14 ? 3 WED” 每年三月的星期三的下午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” 每月的第三个星期五上午10:15触发

表达式生成器地址

猜你喜欢

转载自blog.csdn.net/weixin_43431123/article/details/111938372