1,触发器有一个startTime 和 endTime 属性,startTime 规定Trigger何时生效,endTime规定Trigger何时失效。

2,Trigger的优先级:Quartz管理着一个线程池,用来进行作业的执行。当可用线程数目少于目前待调度的作业数目时,哪个作业的Trigger优先级高,该作业就会优先分配 work thread 执行。当然,作业的Trigger优先级的比较只在具有相同调度时间的作业之间比较,如所有10点钟执行的作业;而9点钟执行的作业的Trigger优先级尽管低于10点钟作业的Trigger优先级。显然,9点钟的作业还是先执行的。

3,Misfire Instructions----错过作业触发时机时怎么办?

Quartz中有一个默认的处理机制--"smart policy"机制。同时,你也可以在为作业配置Triggers时,明确指定作业的misfire instructions。当使用“smart policy”机制时,对于SimpleTrigger而言,它会动态地选择一个合适的触发机制,SimpleTrigger.updateAfterMisfire()方法解释了此种情况下如何触发作业。

SimpleTrigger以常量的形式预定义了一些触发机制,这些机制如下:

MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY
MISFIRE_INSTRUCTION_FIRE_NOW
MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT
MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT
MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT
MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT

4,Quartz提供了一个Calendar对象(不是java.util.Calendar)来更加精细化地设置作业的触发条件。Calendar主要的用途就是:在需要重复地调度作业时,排除某些特殊的日期(比如周末时不执行作业)。

5,如何构造一个Trigger,Trigger监听器能监听什么?

Trigger的构造主要牵涉到三个类:TriggerBuilder、SimpleScheduleBuilder、DateBuilder。通过静态导入,可以以一种DSL语言风格形式来编写代码。Trigger监听器可以监听Trigger在指定的时间被触发了,或者未被触发。也可监听Trigger已经触发“完毕”。

6,如何创建监听器,如何注册监听器?

创建Trigger监听器:implements TriggerListener 接口或者继承TriggerListenerSupport类。implements TriggerListener 接口需要实现接口中定义的所有的方法,而继承TriggerListenerSupport类只需要重写(Override)自己感兴趣的方法。同理创建Job监听器。

监听器的注册需要ListenerManager类来管理注册的监听器,并需要Matcher类来匹配在事件发生时,是哪个Job执行需要执行何种操作。

7,调度监听器--SchedulerListener

调度器监听器监听的事件包括:Job/Trigger的执行或触发、Job/Trigger的删除、通知调度器即将关闭以及调度器本身出错。

8,作业的存储--RAMJobStore 和 JDBCJobStore

RAMJobStore 把整个作业存储在内存中,作业运行完成后,就被删除了。

JDBCJobStore 将作业存储在数据库中,在使用JDBCJobStore之前,必须先配置好数据库,并创建一系列的数据库表来存储作业的相关信息。

在Quartz安装包的"docs/dbTables"目录下已经有相关的数据库操作脚本来创建这些表了,只需要修改一下符合自己安装的数据库即可。

本文转自hapjin博客园博客,原文链接:http://www.cnblogs.com/hapjin/p/4903417.html,如需转载请自行联系原作者

Quartz调度器学习--基本概念相关推荐

  1. 黑莓手机时代落幕;阿里巴巴为 Linux 内核调度器提出新概念;清理 Linux 内核“依赖地狱” | 开源日报

    整理 | 宋彤彤 责编 | 屠敏 开源吞噬世界的趋势下,借助开源软件,基于开源协议,任何人都可以得到项目的源代码,加以学习.修改,甚至是重新分发.关注「开源日报」,一文速览国内外今日的开源大事件吧! ...

  2. CFS调度器学习总结

    CFS调度器学习总结 CFS基本概念 CFS调度对象 CFS调度依据 CFS虚拟时钟 CFS调度过程 CFS数据结构 CFS调度代码 介绍CFS的基本概念和核心数据结构. CFS基本概念 comple ...

  3. Spring中Quartz调度器的使用 ----继承QuartzJobBean,不继承QuartzJobBean两种方式

    一.Quartz的特点 * 按作业类的继承方式来分,主要有以下两种: 1.作业类继承org.springframework.scheduling.quartz.QuartzJobBean类的方式 2. ...

  4. 关于quartz调度器

    关于调度器: 主要作用:按照一定时间规律,或者到指定的时间来执行一些特殊的操作 主要: org.springframework.scheduling.quartz.QuartzJobBean 来源于: ...

  5. Spring中Quartz调度器的使用

    一.Quartz的特点 * 按作业类的继承方式来分,主要有以下两种: 1.作业类继承org.springframework.scheduling.quartz.QuartzJobBean类的方式 2. ...

  6. 调度器学习笔记一:合作式调度器

    最近看了很多关于调度方面的文章,看的云里雾里,现整理如下,还请大神们多多指教. 目前MCU大部分是不上操作系统的,基本都是裸编.也就是说,我们自己要去管理任务的调度,举个大家常用的例子: main() ...

  7. 【Linux 内核】CFS 调度器 ① ( CFS 完全公平调度器概念 | CFS 调度器虚拟时钟 Virtual Runtime 概念 | 四种进程优先级 | 五种调度类 )

    文章目录 一.CFS 调度器概念 ( 完全公平调度器 ) 二.CFS 调度器虚拟时钟概念 ( Virtual Runtime ) 三.进程优先级 ( 调度优先级 | 静态优先级 | 正常优先级 | 实 ...

  8. 【TencentOS tiny学习】源码分析(2)——调度器

    文章目录 调度器的基本概念 启动调度器 Cortex-M内核关中断指令 回归正题 看看任务栈的初始化 查找最高优先级任务 任务切换的实现 SysTick SysTick初始化 SysTick中断 温馨 ...

  9. Quartz任务调度器详解

    关键字: 参考文章:http://blog.sina.com.cn/s/blog_4d36e1ae0100tost.html 价值文章分享:http://wenku.baidu.com/link?ur ...

最新文章

  1. UWP Composition API - 锁定列的FlexGrid
  2. Eclipse注释模板 注释快捷键
  3. ASP.NET 文件操作实例
  4. shopnc 商城源码阅读笔记--开篇概述
  5. 搜索引擎优化网页设计:最佳实践
  6. 干货|各种WAF绕过手法学习
  7. SAP UI5 应用开发教程之三十六 - 使用 Chrome 开发者工具 Elements 标签动态修改 CSS 类试读版
  8. android 清空canvas部分内容_Android自定义View实现圆形头像效果
  9. vi is failed with error E382: Cannot write, 'buftype' option is set in Linux
  10. Delphi 一些函数解释
  11. 【算法分析与设计】习题分享
  12. 基于 Text-CNN 的情感分析(文本分类)----概念与应用
  13. 全球网络安全论坛(GCF)将于2022年2月举行,众多全球领袖将亲临现场
  14. 无人机优化无线传感器网络matlab代码
  15. 注意力模型直观理解(Attention Model Intuition)
  16. Java毕设项目校园外卖系统Web端计算机(附源码+系统+数据库+LW)
  17. 数据统计分析软件介绍
  18. Kubernetes 在本来生活网的落地实践
  19. java中break和continue的用法
  20. Android-状态机算法思想实现礼物连击需求

热门文章

  1. git revert改写提交
  2. Java程序员从笨鸟到菜鸟之(八十五)跟我学jquery(一)爱之初体验jquery
  3. 分类模型的性能评估——以SAS Logistic回归为例(2): ROC和AUC
  4. 您能看出这个生成缩略图的方法有什么问题吗?
  5. 编程之美-分层遍历二叉树方法整理
  6. 鸟哥的Linux私房菜(基础篇)- Red Hat 6.x旧文件
  7. 2015年京东面试题
  8. Andrew Ng 深度学习笔记-01-week2-课程
  9. Spring Boot 参考指南(运行你的应用程序)
  10. Redis五大数据结构