﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-我的IT之路-随笔分类-quartz</title><link>http://www.blogjava.net/zhiweili188/category/42308.html</link><description>人无志，终不能成大事。
学而不思则罔，思而不学则殆。</description><language>zh-cn</language><lastBuildDate>Thu, 22 Oct 2009 16:00:55 GMT</lastBuildDate><pubDate>Thu, 22 Oct 2009 16:00:55 GMT</pubDate><ttl>60</ttl><item><title>quartz简介</title><link>http://www.blogjava.net/zhiweili188/archive/2009/10/22/299435.html</link><dc:creator>脚踏实地</dc:creator><author>脚踏实地</author><pubDate>Thu, 22 Oct 2009 15:21:00 GMT</pubDate><guid>http://www.blogjava.net/zhiweili188/archive/2009/10/22/299435.html</guid><wfw:comment>http://www.blogjava.net/zhiweili188/comments/299435.html</wfw:comment><comments>http://www.blogjava.net/zhiweili188/archive/2009/10/22/299435.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhiweili188/comments/commentRss/299435.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhiweili188/services/trackbacks/299435.html</trackback:ping><description><![CDATA[<strong>Quartz特点：<br />
</strong>􀁺 Quartz能嵌入到任何独立的应用中运行。<br />
􀁺 Quartz能在应用服务器或者Servlet容器中实例化，并且能够参与XA事务。<br />
􀁺 Quartz能够以独立的方式运行（在它自己的Java虚拟机中），可以通过RMI使用Quartz。<br />
􀁺 Quartz可以被实例化为独立程序的集群（有负载均衡和容错能力）。<br />
<strong>Job Scheduling（任务日程安排）</strong><br />
任务在给定的触发器（Trigger）触发时执行。触发器可以通过几乎以下所有形式的组合方式进行创建：<br />
􀁺 在一天中的任意时刻（可以精确到毫秒）。<br />
􀁺 一周中特定的一些天。<br />
􀁺 一个月中特定的一些天。<br />
􀁺 一年中特定的一些天<br />
􀁺 不在日历列表中注册的一些天（比如节假日）。<br />
􀁺 循环特定的次数。<br />
􀁺 循环到特定的时间。<br />
􀁺 无限循环。<br />
􀁺 按照一定的时间间隔循环。<br />
<strong>Job Execution（任务执行）</strong><br />
&#8226; 任务是任何实现简单Job接口的Java 类，这样开发者能够执行任何完成他们工作的任务。<br />
&#8226; 任务类的实例可以由Quartz实例化，也可以由你的程序框架实例化。<br />
当触发器被触发时，日程管理器将会通知某个或者多个实现了JobListener 或TriggerListener的对象（监听器可以是简单的Java对象，或者EJBs,或者JMS消息发布器，等等）。这些监听器在任务执行完毕后也会接到通知。<br />
&#8226; 任务被完成后，他们会返回一个&#8220;任务完成码（JobCompletionCode）&#8221;，这个&#8220;任务完成码&#8221;告知日程管理器任务执行的结果是成功还是失败。日程管理器会根据成功或者失败码来采取措施，比如：立即重新执行任务。<br />
<strong>Job Persistence（任务持久化）</strong><br />
&#8226; Quartz设计中包括了一个JobStore接口，这样，实现这个接口的Job类可以以多种机制实现Job的存储。<br />
&#8226; 通过使用JDBCJobStore,所有的Jobs和Triggers被配置为&#8220;non-volatile&#8221;(不轻快)的方式。即，通过JDBC存储在关系数据库中。<br />
&#8226; 通过使用RAMJobStore，所有Jobs和Triggers被存储在RAM。因此，在程序执行中没有被持久化，但这种方式的优点就是不需要外部数据库。<br />
<strong>Transactions（事务）</strong><br />
&#8226; Quartz通过JobStoreCMT（JDBCJobStore的一个子类）可参与JTA事务。<br />
&#8226; Quartz可以管理JTA事务（开始或者提交事务）。<br />
<strong>Clustering（集群）</strong><br />
&#8226; Fail-over.（容错）<br />
&#8226; Load balancing.（负载均衡）<br />
<strong>Listeners &amp; Plug-Ins（监听器及插件）<br />
</strong>&#8226; 应用可以通过实现一个或者多个监听器接口来实现捕捉日程事件，以监视或控制任务/触发器的行为。<br />
&#8226; 可以通过插件的机制来扩展Quartz 的功能。例如:记录任务执行历史的日志，或者从文件中载入任务和触发器的定义。
<img src ="http://www.blogjava.net/zhiweili188/aggbug/299435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhiweili188/" target="_blank">脚踏实地</a> 2009-10-22 23:21 <a href="http://www.blogjava.net/zhiweili188/archive/2009/10/22/299435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>