定时任务组件Quartz

1.Quartz介绍

官网:Quartz Enterprise Job Scheduler

2.Quartz框架的使用思路 

1)job - 任务 - 你要做什么事?

2)Trigger - 触发器 - 你什么时候去做?

3)Scheduler - 任务调度 - 你什么时候需要去做什么事?

3.SpringBoot整合Quartz框架 

 添加Quartz依赖:

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId></dependency>

1.自定义一个job类

@Component
public class JobDemo {public void print(){System.out.println("当前时间"+new Date());}
}

2.编写quartz配置类

@Configuration
public class JobConfig {/*** 做什么* @param jobDemo* @return*/@Beanpublic MethodInvokingJobDetailFactoryBean methodInvokingJobDetailFactoryBean(JobDemo jobDemo){MethodInvokingJobDetailFactoryBean jobDetailFactoryBean = new MethodInvokingJobDetailFactoryBean();jobDetailFactoryBean.setTargetObject(new JobDemo());jobDetailFactoryBean.setTargetMethod("print");return jobDetailFactoryBean;}/*** 什么时候* @param jobDetailFactoryBean* @return*/@Beanpublic CronTriggerFactoryBean cronTriggerFactoryBean(MethodInvokingJobDetailFactoryBean jobDetailFactoryBean){CronTriggerFactoryBean cronTriggerFactoryBean = new CronTriggerFactoryBean();cronTriggerFactoryBean.setCronExpression("*/1 * * * * ?");cronTriggerFactoryBean.setJobDetail(jobDetailFactoryBean.getObject());return cronTriggerFactoryBean;}/*** 什么时候做什么事* @param cronTriggerFactoryBean* @return*/@Beanpublic SchedulerFactoryBean schedulerFactoryBean(CronTriggerFactoryBean cronTriggerFactoryBean){SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();schedulerFactoryBean.setTriggers(cronTriggerFactoryBean.getObject());return schedulerFactoryBean;}
}

 3.编写启动类

@SpringBootApplication
public class IcanJobApplication {public static void main(String[] args) {SpringApplication.run(IcanJobApplication.class,args);}
}

查看控制台:

运行启动类,观察控制台,可以发现每隔1秒会输出一次,说明每隔1秒自定义 Job被调用一次。 

4.Corn表达式 

Cron 表达式是一个字符串,分为 6 7 个域,每一个域代表一个含义

Cron 有如下两种语法格式:

(1)Seconds Minutes Hours Day Month Week Year

(2)Seconds Minutes Hours Day Month Week

一、结构

corn 从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份

二、cron表达式

字段含义: 

 示例:

?

“?”字符只在日期域和星期域中使用。它被用来指定非明确的值

例如:

 想在每月的20日触发调度0 0 0 20 * ?,而且只能使用如下写法:0/1 0 0 20 * ?。其中最后一位只能用?,而不能使    *,因为*表示不管星期几都会触发恰好与20冲突。

练习:

周一至周五的上午10:15触发 

表示在每月的1日的凌晨2点调整任务

朝九晚五工作时间内每半小时 

每天上午10点,下午2点,4点 

表示每个星期三中午12点 

在每天下午2点到下午2:59期间的每1分钟触发 

在每天下午2点到下午2:05期间的每1分钟触发 

在每天下午2点到下午2:55期间的每5分钟触发

在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 

答案:

* * * * * ?

0 15 10 ? * 2-6

0 0 2 1 * ?

0 */30 9-17 * * ?

0 0 10,14,16 * * ?

0 0 12 ? * 4

0 0-59/1 14 * * ?

0 0-5/1 14 * * ?

0 0-55/5 14 * * ?

0 0-55/5 14,18 * * ?

5.cron表达式在线生成器

前面介绍了cron表达式,但是自己编写表达式还是有一些困难的,我们可以借助一些 cron表达式在线生成器来根据我们的需求生成表达式即可。

在线Cron表达式生成器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/642071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NVM (Node Version Manager) 安装使用

博文目录 文章目录 管理工具安装使用 管理工具 GitHub, nvm-windows nvm-windows: Similar (not identical) to nvm, but for Windows 管理 Node.js 版本有多种工具可选择, 其中使用最广泛的是 nvm, 目前 72.3k Star, 不支持 Windows 系统, nvm-windows, 是其他大佬为 Windows…

ubuntu安装kibana

1、安装elastic search7 参考&#xff1a;elastic search入门-CSDN博客 2、安装kibana&#xff0c;版本对不上&#xff0c;不匹配&#xff0c;不能正常启动。 kibana要改成7.11.1版本的试试。 nohup wget https://artifacts.elastic.co/downloads/kibana/kibana-7.11.1-linu…

Spring-配置文件

一、引子 了解完Spring的基本概念后&#xff0c;我们紧接着来了解Spring中的核心文件--Spring配置文件。 二、配置Bean 我们在上一节Spring的基本概念中快速使用了一下Spring&#xff0c;其中我们在配置文件中主要涉及到就是Bean标签的配置&#xff1a;主要的配置字段有id, …

Servlet系列:生命周期(init、 service、destroy)详解

Servlet的生命周期是由Web容器&#xff08;如Tomcat&#xff09;管理的&#xff0c;包括以下三个阶段&#xff1a; 加载和实例化&#xff1a;当Web应用程序启动时&#xff0c;Web容器会加载和实例化Servlet。加载和实例化过程可以在应用程序启动时自动完成&#xff0c;也可以通…

Mac上如何设置映射某个网站站点域名的IP

最近某常用的站点换 IP 了&#xff0c;但是 DNS 服务器还没有修改&#xff0c;这就导致无法访问&#xff08;换 DNS 服务器也不行&#xff09;。在用了一段时间的 IP 访问之后&#xff0c;还是没好&#xff0c;不知道是 DNS 污染还是咋了&#xff0c;所以最后还是手动改一下吧。…

MySQL定期整理磁盘碎片

MySQL定期整理磁盘碎片&#xff1a;提升数据库性能的终极指南 MySQL作为一个强大的关系型数据库管理系统&#xff0c;在长时间运行后可能会产生磁盘碎片&#xff0c;影响数据库性能。本博客将深入讨论如何定期整理MySQL磁盘碎片&#xff0c;以确保数据库的高效运行。我们将介绍…

mac滚动截图

参考博客 https://www.zhihu.com/question/313673726/answer/2938671835 首先去AppStore搜索 iShot 这个也是要钱的&#xff0c;不过我输入appleID后&#xff0c;并没有扣我钱&#xff0c;不知道设么回事 然后打开iShot 点击观看视频&#xff0c;然后mac会自动打开一个新的…

Softing mobiLink Power:集成FDI技术,简化多协议总线设备的配置方式

Softing的mobiLink Power是一款多协议总线通信工具&#xff0c;用于调试和维护过程自动化现场设备。目前&#xff0c;该工具已具备完整的FDI CommServer&#xff08;包括FF、PA、HART&#xff09;&#xff0c;并支持与FDI客户端一起使用&#xff0c;如艾默生的AMS Device Confi…

LeetCode 670 最大交换数

周一&#xff0c;非常冷&#xff0c;大风呼呼的&#xff0c;上班路都走不动。 好消息&#xff0c;马上要过年了。大风吹&#xff0c;天气好。 过年过年&#xff0c;回家过年~ 学生时代的迷茫是不应该存在的&#xff0c;最好的时光应该尽情享受&#xff0c;而不应该自己给加层…

西门子触摸屏维修6AV7880-0AA22-2DA2

西门子SIMATIC ITP1000平板PC机10.1 英寸采用 Intel Core i5 Skylake CPU&#xff0c;适合需要达16GB RAM的较高图形性能的工业移动计算应用。该 CPU 还提供了足够性能储备以满足将来的要求。安装的 Microsoft Windows 7 和 Microsoft Windows 10 操作系统以合理方式集成到现有…

68. redis计数与限流中incr+expire的坑以及解决办法(Lua+TTL)

文章目录 一、简介二、代码演进第一版代码&#xff08;存在bug隐患&#xff09;第二版代码&#xff08;几乎无隐患&#xff09;第三版代码(完美无瑕&#xff09; 一、简介 在日常工作中&#xff0c;经常会遇到对某种操作进行频次控制或者统计次数的需求&#xff0c;此时常用的…

Elasticsearch分布式一致性原理剖析(一)-节点篇

前言 “Elasticsearch分布式一致性原理剖析”系列将会对Elasticsearch的分布式一致性原理进行详细的剖析&#xff0c;介绍其实现方式、原理以及其存在的问题等(基于6.2版本)。 ES目前是最流行的分布式搜索引擎系统&#xff0c;其使用Lucene作为单机存储引擎并提供强大的搜索查…

解决Git添加.gitignore文件后不生效的问题

1. 问题描述 如上图所示&#xff0c;在已存在.gitignore文件且已经提交过的Git管理的项目中&#xff0c;其中.class、.jar文件以及.idea目录内的内容全部都还是被Git管理了&#xff0c;可见.gitignore文件并没有生效。 2. 原因发现 .gitignore文件只能作用于 Untracked Files…

eNSP学习——配置通过FTP进行文件操作

原理概述&#xff1a; FTP&#xff08;File Transfer Protocol&#xff0c;文件传输协议&#xff09;是在TCP/IP网络和Internet上最早使用的协议之一&#xff0c;在TCP/IP协议族中属于应用层协议&#xff0c;是文件传输的Internet标准。主要功能是向用户提供本地和远程主机…

python--pyQt5 对话框使用(QInputDialog) PySide6

参考&#xff1a; https://www.cnblogs.com/XJT2018/p/10208710.html https://blog.csdn.net/panrenlong/article/details/79948261 含参数详解&#xff1a; https://blog.csdn.net/zhulove86/article/details/52515460 一、简介 QInputDialog类提供了一个简单的便捷对话框&a…

深入浅出AI落地应用分析:AI音乐生成之「Suno.ai」

接下来会每周集中体验一些通用或者垂直的AI落地应用&#xff0c;主要以一些全球或者国外国内排行较前的产品为研究对象&#xff0c;「AI 产品榜&#xff1a; aicpb.com」以专题的方式在博客进行分享。 本节主要介绍和体验AI音乐生成应用产品Suno AI&#xff0c;Suno来自目前最…

HQL,SQL刷题简单查询,基础,尚硅谷

今天刷SQL简单查询&#xff0c;大家有兴趣可以刷一下 目录 相关表数据&#xff1a; 题目及思路解析&#xff1a; 总结归纳&#xff1a; 知识补充&#xff1a; 关于LIKE操作符/运算符 LIKE其他使用场景包括 LIKE模糊匹配情况 相关表数据&#xff1a; 1、student_info表 2、sc…

Unity中URP下获取主灯信息

文章目录 前言一、计算BulinnPhone的函数有两个重载1、 目前最新使用的是该方法&#xff08;这是我们之后主要分析的函数&#xff09;2、 被淘汰的老方法&#xff0c;需要传入一堆数据 二、GetMainLight1、Light结构体2、GetMainLight具有4个方法重载3、1号重载干了什么&#x…

主动轮廓——计算机视觉中的图像分割方法

​ 一、说明 简单来说&#xff0c;计算机视觉就是为计算机提供类似人类的视觉。作为人类&#xff0c;我们很容易识别任何物体。我们可以很容易地识别山丘、树木、土地、动物等&#xff0c;但计算机没有眼睛&#xff0c;也没有大脑&#xff0c;因此它很难识别任何图像。计算机只…

Linux下软件安装的命令【RPM,YUM】及常用服务安装【JDK,Tomcat,MySQL】

Linux下软件安装的命令 源码安装 以源代码安装软件&#xff0c;每次都需要配置操作系统、配置编译参数、实际编译&#xff0c;最后还要依据个人喜好的方式来安装软件。这个过程很麻烦很累人。 RPM软件包管理 RPM安装软件的默认路径: 注意&#xff1a; /etc 配置文件放置目录…