使用jobstore来处理程序中断后的恢复
先看下几个处理时间点上的表状态
生成任务时会往job_details和triggers表插数据(这两个表关联的其它详细表就不多说了)
如果job还没开始执行时程序就中断了,
下次程序启动时会判断当前时间-预计执行时间是否小于misfireThreshold,是则正常执行,否则不执行了
如果是执行过程中中断呢?
job执行中时会往fired_triggers表插数据
如果这时程序中断,而job又设置了RequestsRecovery为true,则该job会被重新执行(不受misfireThreshold影响,因为根本就不是misfire)。
可以通过JobExecutionContext.isRecovering()来判断是否是recover,因为很多时候恢复的任务要先做一些清理工作。
如果RequestsRecovery为false,则不会恢复执行。
另外还有一点要注意,如果job设置了listener,则在jobWasExecuted执行完成后,任务相关的信息才会被从数据库里删除,表示真正执行完成。
如果job的execute执行完了,但在listener的jobWasExecuted()里程序出错或中断的话,quartz记录的任务状态还是运行中,下次任务还是会被恢复(RequestsRecovery=true)。
分享到:
相关推荐
这是一个完整的使用Quartz定时处理案例,虽然简单,但是一个可运行的案例项目,包括了Quartz的包,及配置文件quartz.properties和quartz_jobs.xml文件的配置方法,及在web.xml文件中配置Quartz等方法。看了这个例子...
使用Quartz调度任务,根据需要人为的终止某个任务,适用于很多常见的场景
Spring Quartz 动态暂停、恢复、修改定时任务的一个demo,使用maven构建,框架采用spring springmvc jpa,数据库mysql,含数据库脚本,运行可用,页面访问地址http://localhost:8080/quartz_demo/quartz/list
通过4个案例认识quartz2D的图形处理 典型应用:生成圆形头像
文件里面包括 1:Quartz开发指南.pdf 2:Quartz从入门到进阶.pdf 3:QuartzBeginnerExample一个附带的工程例子 4:quartz-1.6.1.zip Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它...
quartz quartz-1.8.6 dbTables quartz动态任务调度需要的数据库脚本。
springboot 使用quartz+XML格式处理定时任务 springboot 使用quartz+XML格式处理定时任务 springboot 使用quartz+XML格式处理定时任务 功能描述:https://www.cnblogs.com/personblog/p/14030746.html
quartz简单实例quartz简单实例quartz简单实例quartz简单实例
赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...
该压缩包内包含两个quartz的jar包, 分别是quartz-1.6.0.jar和quartz-all-1.6.0.jar
quartz-2.2.3版本的quartz初始化sql语句
ssm整合quartz 并持久化到数据库中,实现动态增删改查,暂停任务,恢复任务等 将链接内的target文件直接放到项目ssmquartztest文件夹下 运行环境: jdk5+tomcat7+mysql+eclipse+maven lib jar包下载地址 地址1:...
lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子
赠送jar包:quartz-2.3.0.jar; 赠送原API文档:quartz-2.3.0-javadoc.jar; 赠送源代码:quartz-2.3.0-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.0.pom; 包含翻译后的API文档:quartz-2.3.0-javadoc-API...
Quartz1.5,Quartz1.6,Quartz1.8。Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个...
Quartz使用方法Quartz使用方法Quartz使用方法Quartz使用方法Quartz使用方法
Quartz.NET框架的核心是调度器。调度器负责管理Quartz.NET应用运行时环境。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz.NET采用了基于多线程的架构。启动时,框架初始化一套worker线程,这套线程被调度器...
quartz 时间配置规则quartz 时间配置规则quartz 时间配置规则quartz 时间配置规则quartz 时间配置规则quartz 时间配置规则
Quartz原理及实例,spring4.x+Quartz.2.2.1结合的开发,静态和动态实例
quartz内部表.sql。