Quartz视频教程
Quartz视频教程

Quartz是功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中-从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数以万计,数以万计的工作;任务定义为标准Java组件的作业,它们实际上可以执行您可以编写的...

共2集 已完结 创建时间:2016-08-07 11:28

收藏:2 访问:3176 学生:23

Winform视频教程-任务定时执行工具

本课程主要学习如何在winform下面实现定时执行


这是官网

http://www.quartz-scheduler.org/


Quartz Job Scheduling Library是什么?

Quartz是功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中-从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数以万计,数以万计的工作;任务定义为标准Java组件的作业,它们实际上可以执行您可以编写的所有内容。Quartz Scheduler包含许多企业级功能,例如对JTA事务和集群的支持。

Quartz是免费使用的,并根据Apache 2.0许可获得许可。


如果您的应用程序具有需要在给定的时间点执行的任务,或者您的系统具有周期性的维护工作,那么Quartz可能是您的理想解决方案。


Quartz作业调度的示例用法:

推动流程工作流程:最初下达新订单时,安排一个Job在正好2个小时内触发,这将检查该订单的状态,如果尚未收到该订单的订单确认消息,则会触发警告通知,并将订单状态更改为“等待干预”。

系统维护:计划一个工作,以便在每个工作日(除节假日以外的所有工作日)晚上11:30将数据库的内容转储到XML文件中。

在应用程序内提供提醒服务。


运行环境

Quartz可以嵌入另一个独立应用程序中运行

Quartz可以在应用服务器(或Servlet容器)中实例化,并参与XA事务

Quartz可以作为独立程序运行(在其自己的Java虚拟机中),可以通过RMI使用

Quartz可以实例化为独立程序的集群(具有负载平衡和故障转移功能),以执行作业


作业调度

计划在给定触发器发生时运行作业。几乎可以使用以下指令的任意组合来创建触发器:

在一天中的特定时间(以毫秒为单位)

在一周的某些日子

在每月的某些天

在一年中的某些日子

不在注册日历中列出的某些日期(例如工作假期)

重复特定的次数

重复直到特定的时间/日期

无限重复

延迟间隔重复

作业由其创建者命名,也可以组织为命名组。还可以给触发器指定名称并将其分组,以便在调度程序中轻松组织触发器。作业可以一次添加到调度程序,但可以通过多个触发器注册。在企业Java环境中,乔布斯可以将其工作作为分布式(XA)事务的一部分来执行。


工作执行

Jobs可以是实现简单Job界面的任何Java类,为Jobs可以执行的工作留下无限的可能性。

作业类实例可以由Quartz或由您的应用程序的框架实例化。

发生触发器时,调度程序会通知零个或多个实现JobListener和TriggerListener接口的Java对象(侦听器可以是简单的Java对象,EJB或JMS发布者等)。作业执行后,也会通知这些侦听器。

作业完成后,它们将返回JobCompletionCode,以通知调度程序成功或失败。JobCompletionCode还可以根据成功/失败代码指示调度程序应采取的任何操作-例如立即重新执行Job。


工作持久性

Quartz的设计包括一个JobStore接口,可以实现该接口以提供用于存储作业的各种机制。

通过使用随附的JDBCJobStore,所有配置为“非易失性”的作业和触发器都将通过JDBC存储在关系数据库中。

通过使用随附的RAMJobStore,所有作业和触发器都存储在RAM中,因此不会在程序执行之间持久存在-但这具有不需要外部数据库的优点。


交易次数

Quartz可以通过使用JobStoreCMT(JDBCJobStore的子类)来参与JTA事务。

Quartz可以在Job执行过程中管理JTA事务(开始并提交它们),以便Job所执行的工作自动在JTA事务中进行。


聚类

故障转移。

负载均衡。

Quartz的内置集群功能依赖于通过JDBCJobStore进行数据库持久化(如上所述)。

Quartz的Terracotta扩展无需集群数据库即可提供集群功能。


插件

应用程序可以通过实现一个或多个侦听器接口来捕获调度事件,以监视或控制作业/触发器的行为。

可以使用Plug-In机制为Quartz添加功能,例如保留作业执行的历史记录,或从文件加载作业和触发器定义。

Quartz附带了许多“工厂内置”的插件和监听器。


官方例子

http://www.quartz-scheduler.org/documentation/2.4.0-SNAPSHOT/quick-start-guide.html