隔叶黄莺 The Blog of Unmi

〖隔叶黄莺三四声,挂壁飞瀑千万尘。若是人间无净土,此处为何妙语真! 隔叶黄莺四字,本非取自此句,而有寄寓他意,因见妙语,亦与予心合!〗

BlogJava 首页 新随笔 联系 聚合 管理
  229 Posts :: 86 Stories :: 560 Comments :: 0 Trackbacks
二. 与 Job 一同工作

本节为使用 Quartz 的 Job 提供了一些例子。

·创建一个新的 Job 类

创建一个新的 Job 类很简单。仅需创建一个类,让它实现 org.quartz.Job 接口即可。这个接口需要你实现 execute() 方法,它会在 Scheduler 决定 Job 要执行时被调用。

代码 12.4 演示了一个简单的 Job,它会为某个用户检查邮件服务器上是否有新的邮件。当 Scheduler 执行这个 Job 时,方法 execute() 被调用,然后其中的代码就会连接到邮件服务器并获取任何邮件消息。这一 Job 只简单的打印邮件是谁发的和邮件的主题。

代码 12.4. 一个检查邮件服务器上的邮件的 Quartz Job



代码 12.4 中大部分内部是使用 JavaMail API 访问邮件服务器的。就实现一个新的 Quartz Job 类来说,只有很少的事情要做。究其本质,就是要实现 Job 接口和 execute() 方法,然后为被部署准备就绪。这在下一个例子中有所显示。

硬编码之于向 Job 传参

在代码 12.4 中,邮件属性,如主机、用户名和密码是硬编码在 Job 类本身中。这称不上是个好主意。在本章后面部份,我们把 Job 修改为传参到 JobDataMap 中。

·部署 Quartz Job

如上个例子所演示的,要创建一个 Quartz Job 确实很直截的。幸运的是,通过 Scheduler 配置一个 Job 也不是很难。代码 12.5 展示的就是部署前面的 CheckEmailJob

代码 12.5. 显示了如何部署 CheckEmailJob 的例子



代码 12.5 中的内容先是从 StdSchedulerFactory 获得 Scheduler,然后启动它。接着为 CheckEmailJob 创建一个 JobDetail 和一个立即开始、每小时触发的 Trigger。

·触发 Job 一次

org.quartz.TriggerUtils 类是很方便的,包含有许多有用的方法。其中一个最有用的方法是能部署一个只立即触发一次的 Trigger。代码 12.6 演示了如何仅仅触发 CheckEmailJob 一次。

代码 12.6. 为 CheckEmailJob 使用仅触发一次的 Trigger



代码 12.6 中使用了 TriggerUtils 类的静态方法 makeImmediateTrigger(),并传递给 repeatCountrepeatInterval 这两个参数的值都是 0,也就使得这个 Trigger 仅触发一次。 


[版权声明]
本站内文章,如未标注 [转载],均系原创或翻译之作,本人 Unmi 保留一切权利。本站原创及译作未经本人许可,不得用于商业用途及传统媒体。网络媒体可随意转载,或以此为基础进行演译,但务必以链接形式注明原始出处和作者信息,否则属于侵权行为。另对本站转载他处文章,俱有说明,如有侵权请联系本人,本人将会在第一时间删除侵权文章。及此说明,重之之重。
posted on 2008-04-05 15:02 隔叶黄莺 阅读(994) 评论(1)  编辑  收藏 所属分类: Quartz

Feedback

# re: Quartz Job Scheduling Framework[翻译]第十二章. Quartz Cookbook (第二部分) 2008-04-07 23:13 王能
http://www.bt285.cn 这个BT网站,与http://yaonba.com.cn NBA中文网job也是用quartZ  回复  更多评论
  


标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-05 15:07 编辑过