我是靠谱客的博主 虚心黑夜,最近开发中收集的这篇文章主要介绍Quartz任务调度的概念,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是Quartz任务调度?

Quartz任务调度就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)一个job(作业)

例如:
①外卖订单下单后未付款,15分钟后自动撤消订单,并自动解锁锁定的商品…
②订购车票时,在付款时先锁定该车票,在特定时间,比如十五分钟未付款,此票会重新加入购票系统,其他旅客可以购买该票
③月底要结算该月的财务,每个月月底要生成报表,那每个月需要做任务调度,自动的去处理生成报表这一活动,无需手动。

Quartz的触发器的种类

触发器用来告诉调度程序作业什么时候触发该事件。
框架提供了5种触发器类型
SimpleTrigger、CronTirgger、DateIntervalTrigger、NthIncludedDayTrigger、Calendar

最常用的SimpleTrigger(简单触发器)和CronTrigger(表达式触发器)
SimpleTrigger:执行N次,重复N次
CronTrigger(表达式触发器):几时几分几秒,哪天/哪月/哪年,执行

Quartz的触发器的存储方式

存储方式优点缺点
RAMJobStore(内存作业存储类型)不要外部数据库,配置容易,运行速度快因为调度程序信息是存储在JVM的内存里面,所以,当应用程序停止运行时,所有调度信息将被丢失; 另外因为存储到JVM内存里面,所以可以存储多少个Job和Trigger将会受到限制
JDBCJobStore(数据库作业存储类型)支持集群,因为所有的任务信息都会保存到数据库中,可以控制事物,还有就是如果应用服务器关闭或者重启,任务信息都不会丢失,并且可以恢复因服务器关闭或者重启而导致执行失败的任务运行速度的快慢取决与连接数据库的快慢

Quartz中的 Job

如果是普通项目,job类则要实现Job接口,重写
public void execute(jobExecutionContext context) ;方法

jobExecutionContext 提供调度上下文各种信息,运行时数据保存在jobDataMap中

jobName+groupName=primary key它代表一个Job的唯一性,它是标识

cronExpression表达式解释

表达式:* * * * * * *
含义:[秒] [分] [小时] [日] [月] [周] [年]
常用示例:
①每天凌晨2点 0 0 2 * * ?和每天隔一小时 0 * */1 * * ?

②例1:每隔5秒执行一次:*/5 * * * * ?

③例2:每隔5分执行一次:0 */5 * * * ?

关键单词

Scheduler:调度程序,日程安排程序
Job:作业,工作

说在最后的话:编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~

最后

以上就是虚心黑夜为你收集整理的Quartz任务调度的概念的全部内容,希望文章能够帮你解决Quartz任务调度的概念所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部