Quartz定时任务详解

2023-11-19

一、添加依赖

<!--SpringBoot整合Quartz依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

二、创建执行任务类

        此类的作用是,被 JobBuilder.newJob(QuartzJob.class)方法调用,在类里填写需要按计划执行的任务。

        必须实现Job接口 implements Job,每次运行的时候都会实例化该类

@Slf4j
public class QuartzJob implements Job {
    @Autowired
    StockMapper stockMapper;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        //触发任务,只要触发了任务就会输出系统时间
            log.info("--------"+ LocalDateTime.now()+"---------");
        stockMapper.updateStockCount("PC100",-1);
    }
}

三、添加配置类

       创建触发任务(JobDetail ),和触发时间(Trigger)

JobDetail 按照 Trigger的规定时间来实例化QuartzJob.class实现按照时间任务执行方法

//配置Spring容器需要添加@Configuration注解
@Configuration
public class QuartzConfig {
    //配置的核心是JobDetail和Trigger对象
    //JobDetail任务内容,Trigger触发实际

    //利用Bean将两个对象添加到容器中
    @Bean
    public JobDetail showTime() {
        System.out.println("!!!!!!!!!!!!!!!!!!!!");
        //利用JobBuilder类的newJob方法指定要运行的Job实现类的反射
        return JobBuilder.newJob(QuartzJob.class)
                //需要为当前任务起名字,方便Quartz调用
                .withIdentity("dateTime")
                //默认情况下JobDetail对象生成后,如果没有触发器绑定会被立即移除
                //storeDurably方法,,当前对象生成后不会被移除
                .storeDurably()
                .build();
    }

    //Trigger触发器,指定触发时机
    @Bean
    public Trigger showTimeTrigger() {
        System.out.println("+++++++++++++++++");
        //声明cron表达式,定义触发时间
        CronScheduleBuilder cron =
                CronScheduleBuilder.cronSchedule("0/5 * * * * ?");
        return TriggerBuilder.newTrigger()
                //设置要绑定的jobDetail对象
                .forJob(showTime())
                //给当前触发器对象起名字
                .withIdentity("dateTrigger")
                //设置绑定cron表达式
                .withSchedule(cron)
                .build();
    }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Quartz定时任务详解 的相关文章

随机推荐

  • hooks中useEffect()使用总结

    常见使用 获取数据案例 import React useState useEffect from react import axios from axios function App const data setData useState
  • 非线性控制3.0——常用镇定算法之Lyapunov 直接法与间接法

    一 非线性系统镇定方法 Lyapunov 直接法与间接法 俄国学者李雅普诺夫提出的稳定性定理采用了状态向量来描述 适用于单变量 线性 非线性 定常 时变 多变量等系统 该方法称为李雅普诺夫法 有两种分类 1 李氏第一法 间接法 求解特征方程
  • css 实现相关案例

    css 实现相关案例 抽屉案例 带吸附箭头
  • ES删除数据

    ES删除数据 注意 删除数据请谨慎执行 删除大于 日期的 其他场景可参照执行 DeleteQuery deleteQuery new DeleteQuery deleteQuery setIndex es中 index deleteQuer
  • ORACLE数据库备份管理-rman备份到NFS

    1 相关案例 1 df h无法正常显示文件系统挂载情况 使用如下命令进行处理 umount f nfsdir 2 节点启动出现问题 询问是否包含nfs服务 将分享节点nfs服务重启 1 案例1从linux linux 实施脚本如下 mkdi
  • LeetCode 237. 删除链表中的节点

    题目链接 点击这里 Definition for singly linked list public class ListNode int val ListNode next ListNode int x val x class Solut
  • 深度学习(一)深度学习的概念

    什么是深度学习 深度学习是机器学习与神经网络 人工智能 图形化建模 优化 模式识别和信号处理等技术融合后产生的一个领域 深度学习网路是神经网络革命性的发展 人们甚至认为可以用它来创建更加强大的预测模型 深度学习的分类 深度学习使用多层机器学
  • CMakeLists中条件判断: if()-endif()成对出现

    缺少endif 时提示代码块opening is not closed 1 if if xxx 要缩进 endif 2 if else if xxx 要缩进 else xxx 要缩进 endif
  • Windows RuntimeError: Distributed package doesn‘t have NCCL built in问题

    问题描述 python在windows环境下dist init process group backend rank world size 处报错 RuntimeError Distributed package doesn t have
  • Serilog + SQL Server 动态分表记录日志

    Serilog SQL Server 分表记录日志 Serilog SQL Server 动态分表记录日志 依赖包 安装依赖包 配置 appsettings json 配置 Program cs Serilog SQL Server 动态分
  • visio 科学图形包_Gnuplot科学绘图(三十九)——地图及圆圈数据图

    Gnuplot科学绘图 系列内容Gnuplot科学绘图 三十一 曲线色彩填充 Gnuplot科学绘图 三十二 填充风格Gnuplot科学绘图 三十三 柱状图Gnuplot科学绘图 三十四 阶梯图Gnuplot科学绘图 三十五 数据平滑Gnu
  • element-ui中日期区间组件

    elementui中日期组件使用 最长只能选择3个月 不限制禁用日期 描述 时间组件代码 描述 点击 确定 按钮进行验证 点击 清空 按钮 清空输入框中的数据 时间范围不能超过3个月 并添加快捷选择今天 最近一周 最近一月 最近3个月 以下
  • js正则 年龄只能为正数,不能为负数,且不能超过150

    需求 要对输入的年龄加条件限制 不能任意输入 只能为正数 不能输入小数 负数
  • 正则表达式(日期、金额、特殊字符)_java语言

    正则表达式 java 正则表达式在线测试网站 个人觉得还算精确 http tool chinaz com regex 备注 如有错误 希望留言指出 虚心请教 金额格式 正数 包含至多2位小数 第1种形式 校验金额格式是否正确 正数 包含至多
  • Android OpenCv 提取图像的RGB三原色分割图像Split Core.split

    基础知识 如果你还不了解 图片 是如何存储的 建议先去看这篇文章 关于三通道彩色图像的存储方式理解 函数简析 我们都知道 彩色图片每个像素点都对应三个值 如 R G B Core split 这个函数则是帮我们这三个值分开 即分别提取 R
  • VUE3快速上手--知识点

    本文是根据B站尚硅谷的视频 尚硅谷Vue2 0 Vue3 0全套教程 全网最新最强vuejs从入门到精通 Vue3部分形成的笔记 一 简介 2020年9月18日 Vue js发布3 0版本 代号 One Piece 海贼王 Vue3相比Vu
  • fileinclude (攻防世界web)

    题目 从题目页面可得到对我们有用的信息 flag存放在了flag php中 并且还知道了当前页面的绝对路径 分析完当前页面能够获取到的所有信息后 查看页面源代码试试 发现得到了主页的php源码 分析以上源码 可知其中 lan为我们可控的 并
  • CentOS安装mariadb

    1 安装 root localhost yum install mariadb mariadb server 2 启动并自启 root ecs 3f21 systemctl enable mariadb now 3 查看启动状态 root
  • CLIP 改进工作

    Contents 图像分类 IJCV 2022 Learning to prompt for vision language models Introduction Context Optimization CoOp Experiments
  • Quartz定时任务详解

    一 添加依赖