• spring boot使用定时器框架Quartz案例


    一、你需要在项目中加入quartz-all-2.1.7.jar的jar包(我这里使用spring boot环境)

    二、然后需要新建一个类去注册定时任务和销毁定时任务,这个类需要实现ServletContextListener的接口中的contextInitialized和contextDestroyed方法

    三、接着就是去定义你自己的定时任务了,也就是再去新建一个类去实现Job的接口中的execute()方法,这个方法就是你在定时任务执行的时候要执行的内容

    1, SimpleTrigger 指定从某一个时间开始,以一定的时间间隔(单位是毫秒)执行的任务。也就是他是以毫秒来计时。

    2, CalendarIntervalTrigger
    类似于SimpleTrigger,指定从某一个时间开始,以一定的时间间隔执行的任务。 但是不同的是SimpleTrigger指定的时间间隔为毫秒,没办法指定每隔一个月执行一次(每月的时间间隔不是固定值),而CalendarIntervalTrigger支持的间隔单位有秒,分钟,小时,天,月,年,星期。相较于SimpleTrigger有两个优势:1、更方便,比如每隔1小时执行,你不用自己去计算1小时等于多少毫秒。 2、支持不是固定长度的间隔,比如间隔为月和年。但劣势是精度只能到秒。
    它适合的任务类似于:9:00 开始执行,并且以后每周 9:00 执行一次
    3.DailyTimeIntervalTrigger 
    指定每天的某个时间段内,以一定的时间间隔执行任务。并且它可以支持指定星期。 
    它适合的任务类似于:指定每天9:00 至 18:00 ,每隔70秒执行一次,并且只要周一至周五执行。

    注意一:这里使用监听器用@WebListener注解则可证明此类为Listener,无需另外配置

    注意二:使用注解申明Listener时需要启动类上面添加@ServletComponentScan(basePackages = "包名+类名")

    代码如下:

  • 相关阅读:
    net.sf.json.JSONException: There is a cycle in the hierarchy!
    数据源的配置
    java枚举使用详解
    hibernate级联保存,更新个人遇到的问题
    NonUniqueObjectException 问题
    No.2 dotnetcore&docker--数据库等在Docker上的配置
    No.1 dotnetcore&docker--环境搭建
    No.5 dotnetcore&docker--采用Ambry做文件服务器
    No.3 dotnetcore&docker--搭建一个nuget服务器
    关于APM数据采集实例以及Eureka整合的一个想法
  • 原文地址:https://www.cnblogs.com/zhangxiaozhen/p/11219138.html
Copyright © 2020-2023  润新知