3.6 Job Execution(任务执行)
•任务是任何实现简单Job接口的Java 类,这样开发者能够执行任何完成他们工作的任务。
•任务类的实例可以由Quartz实例化,也可以由你的程序框架实例化。
当触发器被触发时,日程管理器将会通知某个或者多个实现了JobListener 或TriggerListener的对象(监听器可以是简单的Java对象,或者EJBs,或者JMS消息发布器,等等)。这些监听器在任务执行完毕后也会接到通知。
•任务被完成后,他们会返回一个“任务完成码(JobCompletionCode)”,这个“任务完成码”告知日程管理器任务执行的结果是成功还是失败。日程管理器会根据成功或者失败码来采取措施,比如:立即重新执行任务。
3.7 Job Persistence(任务持久化)
• Quartz设计中包括了一个JobStore接口,这样,实现这个接口的Job类可以以多种机制实现Job的存储。
•通过使用JDBCJobStore,所有的Jobs和Triggers被配置为“non-volatile”(不轻快)的方式。即,通过JDBC存储在关系数据库中。
•通过使用RAMJobStore,所有Jobs和Triggers被存储在RAM。因此,在程序执行中没有被持久化,但这种方式的优点就是不需要外部数据库。
3.8 Transactions(事务)
• Quartz通过JobStoreCMT(JDBCJobStore的一个子类)可参与JTA事务。
• Quartz可以管理JTA事务(开始或者提交事务)。
3.9 Clustering(集群)
• Fail-over.(容错)
• Load balancing.(负载均衡)
3.10 Listeners &Plug-Ins(监听器及插件)
•应用可以通过实现一个或者多个监听器接口来实现捕捉日程事件,以监视或控制任务/触发器的行为。
•可以通过插件的机制来扩展Quartz 的功能。例如:记录任务执行历史的日志,或者从文件中载入任务和触发器的定义。
3.11 夏令时和触发器
CronTrigger 和 SimpleTrigger分别用它们自己的方式来处理夏令时,每种方式对与触发器类型来说都很直观。
(夏令时开始的时刻,时钟要向前(未来)拨一个小时,夏令时结束的时刻,时钟向后(过去)拨一个小时)
SimpleTrigger允许你每隔若干毫秒来触发纳入进度的任务。因此,对于夏令时来说,根本不需要做任何特殊的处理来“保持进度”。它只是简单地保持每隔若干毫秒来触发一次,无论你的SimpleTrigger每隔10秒触发一次还是每隔15分钟触发一次,还是每隔24小时触发一次。但是这隐含了一个混乱,对于那些每隔12个小时触发一次的SimpleTrigger来说,在实行夏令时之前,任务是在凌晨3点及下午3点触发,但是在执行夏令时后,人物是在凌晨4点及下午4点触发。这不是Bug,触发器仍然保持了每隔若干毫秒触发一次,只是时间的“名字”被人为地强行改变了。
CronTrigger能在特定“格林日历”时刻触发纳入进程的任务,因此,如果创建一个在每天上午10点触发的触发器,那么,在夏令时执行之前,系统将继续如此运作。但是,取决于是春季还是秋季夏令时,因为对于特定的星期日,从星期六上午10点到星期日上午10点之间的时间间隔将不是24小时,而可能是23或者25个小时。
总之,如果你记住下面的两条规则,则会感觉良好并且很容易记忆:
• SimpleTrigger 总是每隔若干秒触发,而同夏令时没有关系。
• CronTrigger 总是在给定的时间出发然后计算它下次触发的时间。如果在给定的日期内没有该时间,则触发器将会被忽略,如果在给定的日期内该时间发生了两次,它只触发一次。因为是在第一次触发发生后计算当天下次触发的时间。
相关推荐
Quartz--JAVA定时任务\Java应用:Java调度任务和Spring Quartz (1)
使用quartz实现的java 定时任务,通过写cron表达式,让任务在制定时刻触发执行。
在实际项目应用中经常会用到定时任务,可以通过quartz和spring的简单配置即可完成,但如果要改变任务的执行时间、频率,废弃任务等就需要改变配置甚至代码需要重启服务器,这里介绍一下如何通过quartz与spring的组合...
Java使用quartz实现任务调度定时任务
定时任务quartz实现分组串行并行动态配置
自留demo,java定时任务quartz的基本实现,对应博客https://blog.csdn.net/jing12062011/article/details/82758536
java-springboot-quartz-定时任务.zip
完整的定时任务案例,导入Eclipse或者MyEclipse即可使用
java定时执行多任务和quartz定时执行多任务
3_定时任务技术发展趋势.mp4 4_主流定时任务框架优缺点和什么是分布式定时任务.mp4 5_环境搭建总体流程.mp4 6_前期准备-JDK.mp4 7_前期准备-Maven.mp4 8_前期准备-MySQL.mp4 9_前期准备-Zookeeper.mp4 10_知识点检测...
Quartz定时任务
Spring + quartz 定时任务修改定时时间不重启服务
java + quartz 实现定时任务的简单任务,下载即可运行
上一次传错了资源了,这个是正确的,包含quartz动态定时任务的
Java Quartz定时任务简单列子
quartz 动态定时任务 根据数据库数据配置动态定时任务
附件中实现了对quartz的动态添加、修改和删除定时任务,方便通过页面动态控制执行定时任务。
Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查,部署到tomcat即可看到定时任务执行效果。本人亲测,可用!
Quartz.net作业调度自定义定时执行任务多任务执行c#,定时执行任务,如超时取消订单,自动确认收货等等
Quartz定时任务框架,本次小白使用它实现一个简单的定时任务。每隔3秒打印一次Hello。这个是例子的jar包,实现过程在博客首页可看到。