猿创征文|快速了解Quartz

目录

quartz简介:

为什么需要Quartz

Quartz核心组件

Cron表达式


quartz简介:

quartz:是一个当今市面上流行的高效的任务调度管理工具,所谓"调度"就是制定好的什么时间做什么事情的计划,由OpenSymphony开源组织开发,是java编写的,我们使用时需要导入依赖即可。

为什么需要Quartz

所谓"调度"就是制定好的什么时间做什么事情的计划

我们使用过的最简单的调度方法就是Timer

但是Timer的调度功能过于单一,只能是指定时间的延时调用和周期运行

而Quartz可以更详细的指定时间,进行计划调用

Quartz核心组件

调度器:Scheduler------调度器来配置\计划什么时间触发什么任务,简单来说就是调度器规定什么时间做什么事情,一个可以规定哪个触发器绑定哪个job的容器。在调度器中保存全部的Quartz 保存的任务SpringBoot框架下,添加Quartz依赖后,调度器由SpringBoot管理,我们不需要编写。

任务:job------Quartz 实现过程中是一个接口,接口中有一个方法execute(执行的意思),创建一个类,实现这个接口,在方法中编写要进行的操作(执行具体任务),还需要一个JobDetail的类型的对象,Quartz每次执行job时,会实例化job类型对象,去调用这个方法,JobDetail是用来描述Job实现类的静态信息,比如任务运行时在Quartz中的名称。

触发器:Trigger------能够描述触发指定job的规则,分为简单触发和复杂触发,简单触发可以使用SimplTrigger实现类.功能类似timer,复杂触发可以使用CronTrigger实现类,内部利用cron表达式描述各种复杂的时间调度计划。

Cron表达式

Cron表达式是能够制定触发时间的一个格式

  • *  表示任何值,如果在分的字段上编写*,表示每分钟都会触发

  • ,  是个分割符如果秒字段我想20秒和40秒时触发两次就写 20,40

  • -  表示一个区间 秒字段5-10 表示 5,6,7,8,9,10

  • /  表示递增触发 秒字段 5/10表示5秒开始每隔10秒触发一次

    日字段编写1/3表示从每月1日起每隔3天触发一次

  • ?  表示不确定值, 因为我们在定日期时,一般确定日期就不确定是周几,相反确定周几时就不确定日期

  • L  表示last最后的意思,我们可以设置当月的最后一天,就会在日字段用L表示,

    周字段使用L表示最后一周,一般会和1-7的数字组合

    例如6L表示本月最后一周的周五

  • W  (work)表示最近的工作日(单纯的周一到周五) 如果日字段编写15W表示

    每月15日最近的工作日触发,如果15日是周六就14日触发,如果15日是周日就16日触发

LW通常一起使用,表示本月的最后一个工作日

  • #  表示第几个,只能使用在周字段上 6#3表示每月的第三个周五

    如果#后面数字写大了,是一个不存在的日期,那就不运行了

    适合设计在母亲节或父亲节这样的日期运行

网络上可用的Cron表达式生成器很多

推荐一个Cron - 在线Cron表达式生成器

每年的母亲节早上9点触发

0 0 9 ? 5 1#3

每个月离15日最近的工作日18点发工资

0 0 18 15W * ?

每年11月11日0时触发

0 0 0 11 11 ?


总结:

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

�欢快↑㎡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值