您的位置:首页 > 职场人生

详细讲解Quartz如何从入门到精通(5)

2008-09-09 22:46 627 查看
编程调度同声明性调度
例3中,我们通过编程的方法调度我们的ScanFTPSiteJob作业。就是说,我们用Java代码来设置作业和触发器。Quartz框架也支持在xml文件里面申明性的设置作业调度。申明性方法允许我们更快速地修改哪个作业什么时候被执行。

Quartz框架有一个插件,这个插件负责读取xml配置文件。xml配置文件包含
了关于启动Quartz应用的作业和触发器信息。所有xml文件中的作业连同相关的触发器都被加进调度器。你仍然需要编写作业类,但配置那些作业类的调度
器则非常动态化。例4展示了一个用申明性方式执行与例3代码相同的逻辑的xml配置文件。

例4.能使用xml文件调度的作业原文缺少内容

你可以将xml文件中的元素跟例3代码作个比较,它们从概念上来看是相同的。使用例4式的申明性方法的好处是维护变得极其简单,只需改变xml配置文件和重新启动Quartz应用即可。无须修改代码,无须重新编译,无须重新部署。

有状态和无状态作业
在本文中你所看到的作业到是无状态的。这意味着在两次作业执行之间,不会去维护作业执行时JobDataMap的状态改变。如果你需要能增、删,改JobDataMap的值,而且能让作业在下次执行时能看到这个状态改变,则需要用Quartz有状态作业。如果你是一个有经验的EJB开发者的话,深信你会立即退缩,因为有状态带有负面含义。这主要是由于EJB带来的伸缩性问题。Quartz有状态作业实现了org.quartz.StatefulJob接口。无状态和有状态作业的关键不同是有状态作业在每次执行时只有一个实例。大多数情况下,有状态的作业不回带来大的问题。然而,如果你有一个需要频繁执行的作业或者需要很长时间才能完成的作业,那么有状态作业可能给你带来伸缩性问题。
Quartz框架的其他特征
Quartz框架有一个丰富的特征集。事实上,quarts有太多特性以致不能在一种情况中全部领会,下面列出了一些有意思的特征,但没时间在此详细讨论。

监听器和插件
每个人都喜欢监听和插件。今天,几乎下载任何开源框架,你必定会发现支持这两个概
念。监听是你创建的Java类,当关键事件发生时会收到框架的回调。例如,当一个作业被调度、没有调度或触发器终止和不再打火时,这些都可以通过设置来来
通知你的监听器。Quartz框架包含了调度器监听、作业和触发器监听。你可以配置作业和触发器监听为全局监听或者是特定于作业和触发器的监听。
一旦你的一个具体监听被调用,你就能使用这个技术来做一些你想要在监听类里面做的
事情。例如,你如果想要在每次作业完成时发送一个电子邮件,你可以将这个逻辑写进作业里面,也可以JobListener里面。写进
JobListener的方式强制使用松耦合有利于设计上做到更好。
Quartz插件是一个新的功能特性,无须修改Quartz源码便可被创建和添加
进Quartz框架。他为想要扩展Quartz框架又没有时间提交改变给Quartz开发团队和等待新版本的开发人员而设计。如果你熟悉Struts插件
的话,那么完全可以理解Quartz插件的使用。
与其Quartz提供一个不能满足你需要的有限扩展点,还不如通过使用插件来拥有可修整的扩展点。

集群Quartz应用
Quartz应用能被集群,是水平集群还是垂直集群取决于你自己的需要。集群提供以下好处:
· 伸缩性
· 搞可用性
· 负载均衡
目前,Quartz只能借助关系数据库和JDBC作业存储支持集群。将来的版本这个制约将消失并且用RAMJobStore集群将是可能的而且将不需要数据库的支持。

Quartz web应用
使用框架几个星期或几个月后,Quartz用户所显示的需求之一是需要集成
Quartz到图形用户界面中。目前Quartz框架已经有一些工具允许你使用Java
servlet来初始化和启动Quartz。一旦你可以访问调度器实例,你就可以把它存储在web容器的servlet上下文中
(ServletContext中)并且可以通过调度器接口管理调度环境。
幸运的是一些开发者已正影响着单机Quartz web应用,它用来更好地管理调度器环境。构建在若干个流行开源框架如Struts和Spring之上的图形用户界面支持很多功能,这些功能都被包装进一个简单接口。GUI的一个画面如图1所示:


图1.Quartz Web应用允许比较容易地管理Quartz环境

Quartz的下一步计划
Quartz是一个活动中的工程。Quartz开发团队明确表示不会停留在已有的荣
誉上。Quartz下一个主要版本已经在启动中。你可以在OpenSymphony的 wiki上体验一下Quartz
2.0的设计和特征。总之,Quartz用户每天都自由地添加特性建议和设计创意以便能被核心框架考虑(看重)。

了解更多Quartz特征
当你开始使用Quartz框架的更多特性时,User and Developer Forum论坛变成一个回答问题和跟其他Quartz用户沟通的极其有用的资源。经常去逛逛这个论坛时很有好处的,你也可以依靠James House来共享与你的需要相关的知识和意见。

(完)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 职场 休闲