Quartz 入门

标签: quartz作业javaejb应用服务器集群
5227人阅读 评论(0) 收藏 举报
分类:

Quartz是什么?

Quartz是一个全功能的,开源的作业调度程序,Quartz可以集成到任何的J2EE或者J2SE程序中(从最小的单机程序到复杂的电子商务系统)。Quartz可以管理即使,几百,甚至成千上万的简单或者复杂的作业调度。这些作业可以是任何标准的Java组件或者是EJB。Quartz作业调度系统包含了很多的企业级的特性,例如:JTA 事务,集群等。

 

Quartz特性

 

第一, 运行环境

Quartz可以嵌入到其他的自己运行的程序中

Quartz可以在应用服务器(或者web服务器)内部初始化,可以参与XA事务(分布式事务,两阶段提交)。

Quartz可以作为单独的Java程序运行(在单独的Java 虚拟机进程中运行),可以通过RMI远程使用

Quartz可以以分布式的方式运行(这样可以利用负载均衡和自动容错的功能)

 

第二,作业调度

当触发器发生的时候,作业会被调度执行。触发器使用几乎所有的下列指令的联合。

     一天中的某个时间(微秒级别)

     一周中的某些天

     一月中的某些天

     一年中的某些天

     不在注册的日历中的某些天

     重复若干次

     重复执行指导某个时间

     不确定的重复

     在一定的时间之后重复

作业可以被创建者命名,也可以被组织到命名的组中。触发器也可以被命名或者分组,这样可以在调度程序中方便的管理这些触发器。一个作业可以被注册到调度程序中一次,但是使用多个触发器。在J2EE环境中作业的内容可以参与到一个分布式事务中(XA Transaction)。

 

第三,作业执行

    作业可以是实现Job接口的任意的java类,作业中可以实现你想实现的任何内容。

    作业可以非Quartz实例化,也可以被你的程序实例化。

    当一个触发器发生的时候,调度程序会触发JobListener或者TriggerListener的实例,这些实例可以是简单的Java对象,EJB,JMS 发布者,等。Job执行结束之后也会触发这些Listener。

    当作业执行完毕之后会返回一个JobCompletionCode对象,这个对象包含了执行成功或者失败的信息。JobCompletionCode也可以指示Scheduler执行那些根据这个作业结果需要动态执行的那些作业。

 

第四,作业持久化

     Quartz设计中包含了一个JobStore的接口,你可以实现JobStore接口来使用不同的方式存储作业(Job)。

     使用JDBCJobStroe可以通过JDBC将稳定的作业和触发器存储在数据库中。

     使用RAMJobStore可以将作业和触发器放在内存中这样在每次执行结束的时候都会丢失这些内容,但是不需要使用外部的数据库。

 

第五, 事务

通过是使用JobStoreCMT(JDBCJobStore的子类)可以参与到JTA事务中。(将是否注册作业参与到其他的JTA事务中)

Quartz可以在作业开始或者结束的时候管理JTA事务(启动或者提交事务),这样Job可以在事务的上下文中执行。

 

第六, 集群

     容错

     集群 

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:704927次
    • 积分:6814
    • 等级:
    • 排名:第3382名
    • 原创:103篇
    • 转载:1篇
    • 译文:1篇
    • 评论:293条
    求关注
    评论啦!
    最新评论
    blog comments powered by Disqus