作业调度框架Quartz1:开天劈地

作业调度框架Quartz一:开天劈地

引子:

        现代的 Web 应用程序框架在范围和复杂性方面都有所发展,如我们用得最多的struts、spring、hibernate等,也有如慢慢流行起来的JSF等等,这些应用程序框架的发展,誓必要求应用程序的每个底层组件也必须相应地发展。作业调度是现代操作系统用得最多的技术之一,它所给我们带来的好处远不只有作业同步执行那么少,而且作业调度是操作系统不可或缺的部件,然而随首Java技术的不断扩大,现代Web应用系统也不断变得越来越复杂,那么作业调度也应该是 Java 应用程序的一般要求,而且也是对 Java 开发人员一贯的要求。虽然目前的调度技术比起原始的数据库触发器标志和独立的调度器线程来说,已经发展了许多,但是作业调度仍然不是个小问题。对于这个问题,最合适的解决方案应该就是来自 OpenSymphony 的 Quartz API。

       Quartz ,意为石英、晶钟,在现代通讯技术(如移动通讯)中用于对准时间的也叫“时钟晶阵”,石英是目前为已最为精准的时钟。Quartz的读音是作业调度框架Quartz1:开天劈地作业调度框架Quartz1:开天劈地作业调度框架Quartz1:开天劈地作业调度框架Quartz1:开天劈地作业调度框架Quartz1:开天劈地作业调度框架Quartz1:开天劈地作业调度框架Quartz1:开天劈地作业调度框架Quartz1:开天劈地,你也可以到http://www.iciba.com/Quartz/听一下准确的发音。Quartz<script language="JavaScript" type="text/javascript">echoFlash("http://www.iciba.com/resource/a/en/q/quartz.swf");</script>个开源的作业调度框架,它可以嵌入到你的Java应用程序中,Quartz 用于创建简单或者复杂的十个、一百个甚至是一千个作业,可为是真正地您的 Java 应用程序中进行作业调度提供了简单而强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz 的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。Quartz 也可以通过在属性文件中指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池等配置 Quartz。

正文:

      Quartz 是一个免费的*使用软件,目前的最新版本是1.6,你可以到http://www.opensymphony.com/quartz/download.action下载,也可以在本贴子里进行下载。

谁在使用Quartz ?下面的列表列出了一些正在使用Quartz 的用户:

  • Vodafone Ireland - uses Quartz for scheduling tests to be carried out on systems in order to generate quality of service information.
  • Covalent Technologies, Inc. - uses Quartz within their CAM product to handle anything scheduling related in the system, such as: scheduling server actions (start, restart, etc.), metric calculations, data cleanup daemons, etc.
  • PartNET Inc. - uses Quartz for scheduling application events and driving workflows within many of its products.
  • U.S. Department of Defence - uses Quartz at various points within a large electronic commerce application, noteably order fulfillment.
  • Level3 Communications - uses Quartz to drive software builds and deployments.
  • Atlassian - uses Quartz within their excellent JIRA and Confluence products.
  • Cisco - uses Quartz in various in-house systems.
  • Apache Jakarta - Quartz is used within (or as plugins to) several products falling under the Jakarta umbrella.
  • OpenSymphony - Uses Quartz to drive the OS Workflow product.
  • Spring - Quartz is used within the Spring Framework.
  • XpoLog - uses Quartz within XpoLog Center in order to enable automatic technical support.
  • Bloombase Technologies - has integrating Quartz within their Spitfire EAI Server for XML security processing.
  • Thomson Tax and Accounting - uses Quartz in its job scheduling framework within it's editorial systems group.
  • The Liferay Portal - is using the Quartz Scheduler. Just download and check the code. Liferay Inc. Portal.
  • Infoglue CMS - from infoglue.org
  • Apache Cocoon - uses Quartz to provide scheduling features and to run application background processes.
  • JBoss - uses Quartz for the implementation of a number of services within its infrastructure.

    Quartz的基本单元---作业和触发器:

    • 作业 是能够调度的可执行任务
    • 触发器 提供了对作业的调度

            一看到这两个单元,我们很快就会想到,这两者是合在一起来实现功能的,但事实上并非如此,Quartz最终也是把它们两分离开来,通过把要执行的工作与它的调度分开,Quartz 允许在不丢失作业本身或作业的上下文的情况下,修改调度触发器。而且,任何单个的作业都可以有多个触发器与其关联,这不仅实现了作业与触发器的一对多关系,而且也益于作业的管理。

  • 1 楼 hzhui 2007-09-06  
    后继会使发表Quartz的使用例子。
    2 楼 soming 2007-09-07  
    已经用这个东西作了一个项目
    3 楼 lidwup 2007-09-08  
    很期待你的例子,希望能尽快上传。···