概述
什么是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任务调度的概念所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复