01_Quartz基础结构
【各种任务调度的使用场景】
论坛每天凌晨统计论坛用户的积分排名。
论坛每半个小时生成精华文章。
每隔30分钟对锁定过期的用户解锁。
每月1号统计上个月各部门的业务数据。
【Quartz 简介】
Quartz提供了强大的任务调度机制,Quartz允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。
Quartz还提供了调度运行环境的持久化机制,可以保存并恢复调度现场,即使系统因故障关闭,任务调度现场数据并不会丢失。
Quartz还提供了组件式的侦听器、各种插件、线程池等功能。
【Quartz 基础结构】
[ Job ]
Job是一个接口,只有一个方法 void execute( JobExecutionContext context ),开发者实现该接口并在方法里定义需要执行的任务。
JobExecutionContext 类提供了调度上下文的各种信息。
Job运行时的信息保存在JobDataMap中。
[ JobDetail ]
Quartz在每次执行Job时,都重新创建一个Job实例。
JobDetail描述了Job的实现类以及其他相关的静态信息,如Job名称、描述、关联监听器等信息。
构造方法:JobDetial(String name,String group, Class jobClass)。jobClass就是对应的Job的实现类。
[ Trigger ]
是一个类,描述触发Job执行的时间触发规则。
主要有SimpleTrigger 和 cronTrigger这两个子类。
SimpleTrigger:适合 当仅需要一次或者以固定时间间隔周期执行的任务。
CronTrigger:使用Cron表达式定义出各种复杂的调度方案,如每天早上8点、每周一下午5点。
[ Calendar ]
是org.quartz.Calendar。
它是一些日历特定时间点的集合。
一个Trigger可以和多个Calendar关联,以便排除或者包含某些时间点。
[ Schedular ]
代表一个Quartz的独立运行的容器。
Trigger和JobDetail可以注册到Scheduler中,两者在Scheduler中拥有自己组合名称。
组以及名称是Scheduler查找某一对象的依据,Trigger、JobDetail的组名、名称必须唯一。
Scheduler可以将Trigger绑定到某一个JobDetail中,这样当Trigger被触发时,对应的Job就被执行。
一个Job可以对应多个Trigger,一个Trigger只能对应一个Job。
Scheduler实例可以由SchedulerFactory工厂创建。
Scheduler中拥有一个SchedulerContext,保存着Scheduler的上下文信息,Job和Trigger都可以访问SchedulerContext中的信息。SchedulerContext内部通过一个Map维护这些上下文数据。
[ ThreadPool ]
Scheduler使用一个线程池作为任务运行的基础设施。任务通过共享线程池中的线程提高运行效率。
【Quzrtz内部组件结构图】

一个Scheduler可以拥有多个Trigger和JobDetail,他们可以分到不同的组中。
Scheduler注册Trigger和JobDetail时,如果不显式指定所属的组,Scheduler将会将其放入默认组中,默认组的组名为Scheduler.DEFAULT_GROUP。组名和名称组成了对象的全名,统一类型对象的全名不能相同。
01_Quartz基础结构的更多相关文章
- Apworks框架实战(六):使用基于Entity Framework的仓储基础结构
在前面的章节中,我们已经设计了一个简单的领域模型,接下来我们希望能够实现领域模型的持久化及查询.在Apworks中,实现了面向Entity Framework.NHibernate以及MongoDB的 ...
- 开放式管理基础结构 OMI
Windows 长久以来在 CIM 实施领域一直傲立桥头,而这一切都是从 WMI(Windows 管理基础结构)开始的.分布式管理任务组 (DMTF) 通用信息模型 (CIM) 是一种开放式标准,用于 ...
- 设置将 Microsoft Azure 的网络基础结构以支持设置为灾难恢复站点
Prateek Sharma 云 + Enterprise 高级项目经理 Azure SiteRecovery (ASR)可以将Microsoft Azure用作您的虚拟机的灾难恢复站点. 当管理 ...
- 转载文章:Windows Azure 基础结构服务上的 Microsoft Dynamics NAV 和 Microsoft Dynamics GP!
Windows Azure 基础结构服务(虚拟机和虚拟网络)可提供按需基础结构,该基础结构可进行伸缩以适应不断变化的业务需求.无论您是在虚拟机中创建新应用程序,还是运行现有应用程序,我们都将按分钟收费 ...
- Gartner 认定 Microsoft 为具有远见卓识的云基础结构即服务提供商
四个月前, Windows Azure 基础结构服务结束了预览版阶段,正式发布了,它具有业内领先的 SLA.随后, 凭借愿景的完整性和执行力,Gartner 很快认可了 Microsoft 在市场中的 ...
- 1详细解析HTML基础结构
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 详细解析HTML基础结构
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 适用于 Windows VM 的 Azure 示例基础结构演练
本文是更广泛系列的一部分,当你在 Azure 中构建应用程序基础结构时,这些系列向你提供设计注意事项和准则. 用户可以查看系列中的其他主题. 尽管用户可以在 Azure 中快速地构建出开发/测试环境, ...
- 在 Azure 中将基础结构自动化工具与虚拟机配合使用
若要以一致的方式大规模创建和管理 Azure 虚拟机 (VM),通常需要某种形式的自动化. 可以通过许多工具和解决方案来自动完成整个 Azure 基础结构部署和管理生命周期. 本文介绍了一些可以在 A ...
随机推荐
- sharepoint_study_4
描述:如何向sharepoint自定义列表,新建(编辑)页面的网站栏后,添加一个快捷方式? 如图示: 解决: 1.在SharePoint Designer中打开该自定义列表 2.右键NewForm.a ...
- Luogu P1801 黑匣子_NOI导刊2010提高(06)
P1801 黑匣子_NOI导刊2010提高(06) 题目描述 Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个 ...
- HDU - 6183 动态开点线段树 || 令人绝望的线段树
一看C才[0,50],肯定要开51棵线段树维护y区间的最小x值啦 是男人就上51棵..等等空间爆几倍了 动态开点!51棵线段树用全局节点变量控制,有点像主席树 清空工作很简单,把51个树根清掉然后回收 ...
- matlab实用教程
苏金明.2005.电子工业 1 语句末尾加 : 可以不显示到屏. who 查看变量 whos 列出变量信息 exist t 判断变量是否在空间中. help 函数 doc 函数 : doc f ...
- C++标准库之String
C++中支持的字符串处理的函数库叫String,但它不是STL,却与STL操作十分相似. 1.声明: 使用String之前要有以下头文件 #include<string> using na ...
- 子查询及pymysql
子查询 子查询指的是当一个查询语句被作为另一个查询语句的条件时,该查询语句就称之为子查询(内层查询) 可以将一个大问题 拆分几个小的问题 然后一步一步来查询 需求:财务不有哪些人 ),sex ),jo ...
- G: 又见模法师
G: 又见模法师 Time Limit: 1 s Memory Limit: 128 MB #include <stdio.h> ; typedef long lo ...
- 笔记本安装win7和arch linux双系统+xfce4桌面
参考:Archlinux 2015.07.01 和 Windows7 双系统 安装教程http://www.cnblogs.com/fangying7/p/3803290.html 关于Archlin ...
- PIE SDK波谱运算
1.算法功能简介 波谱运算(Spectral Math)是一种灵活的波谱处理工具,可以用数学表达式或IDL程序对波谱曲线(以及选择的多波段图像)进行处理.波谱曲线可以来自一幅多波段图像的Z剖面.波谱库 ...
- storm(2)-机制
1.storm vs esper 2.storm vs spark streaming storm处理的是每次传入的一个事件:spark streaming 处理的是某个时间段窗口内的事件流. 因此 ...