[译]Java定时任务调度-Quartz文档(七)TriggerListeners and JobListeners
来源:互联网 发布:mac如何播放flash 编辑:程序博客网 时间:2024/06/05 10:27
监听器顾名思义是当发生某些事件是,发生对应行为的一系列对象。你可能已经猜到了,TriggerListener监听的是trigger相关的事件,JobListener监听的是job相关的事件。trigger相关的事件包括触发器哑火、触发器结束。
The org.quartz.TriggerListener Interface
public interface TriggerListener { public String getName(); public void triggerFired(Trigger trigger, JobExecutionContext context); public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context); public void triggerMisfired(Trigger trigger); public void triggerComplete(Trigger trigger, JobExecutionContext context, int triggerInstructionCode);}
job监听事件包括任务开始执行的通知事件和任务执行结束的通知事件。
The org.quartz.JobListener Interface
public interface JobListener { public String getName(); public void jobToBeExecuted(JobExecutionContext context); public void jobExecutionVetoed(JobExecutionContext context); public void jobWasExecuted(JobExecutionContext context, JobExecutionException jobException);}
创建自己的监听器
要创建自己的监听器,只需要实现定义的接口即可。在运行时会将监听器注册到scheduler,监听器必须制定一个name(通过实现getName方法)。
为了方便起见,也可以直接继承JobListenerSupport or TriggerListenerSupport,然后重写你的方法即可。
listener的初始化是由ListenerManager完成的。同时还需要一个匹配所监听的job/trigger的匹配器,如下:
为job添加listener
scheduler.getListenerManager().addJobListener(myJobListener, KeyMatcher.jobKeyEquals(new JobKey("myJobName", "myJobGroup")));
引入以下代码:
import static org.quartz.JobKey.*;import static org.quartz.impl.matchers.KeyMatcher.*;import static org.quartz.impl.matchers.GroupMatcher.*;import static org.quartz.impl.matchers.AndMatcher.*;import static org.quartz.impl.matchers.OrMatcher.*;import static org.quartz.impl.matchers.EverythingMatcher.*;...etc.
上面的代码就可以简化为:
scheduler.getListenerManager().addJobListener(myJobListener, jobKeyEquals(jobKey("myJobName", "myJobGroup")));
- 为一个group的job添加listener
scheduler.getListenerManager().addJobListener(myJobListener, jobGroupEquals("myJobGroup"));
- 为两个group的job添加listener:
scheduler.getListenerManager().addJobListener(myJobListener, or(jobGroupEquals("myJobGroup"), jobGroupEquals("yourGroup")));
- 为所有job添加listener
scheduler.getListenerManager().addJobListener(myJobListener, allJobs());
triggerListener同理。
Quartz使用listener的并不多,但如果有类似的事件通知需求,而job本身没有这个功能,监听器是很有用的。
原文链接:
http://www.quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/tutorial-lesson-08.html
0 0
- [译]Java定时任务调度-Quartz文档(七)TriggerListeners and JobListeners
- Quartz学习笔记(三)—— TriggerListeners and JobListeners
- Quartz学习之Lesson7-TriggerListeners and JobListeners
- [译]Java定时任务调度-Quartz文档(十)Configuration, Resource Usage and SchedulerFactory
- [译]Java定时任务调度-Quartz文档(五)SimpleTrigger
- 【7】TriggerListeners and JobListeners
- Quartz.NET教程_Lesson 7: TriggerListeners and JobListeners
- [译]Java定时任务调度-Quartz文档(二)Quartz API、Job & Scheduler
- [译]Java定时任务调度-Quartz文档(十二)Miscellaneous Features of Quartz
- [译]Java定时任务调度-Quartz文档(一)初步使用
- [译]Java定时任务调度-Quartz文档(三)进一步讲讲Job和Job Detail
- [译]Java定时任务调度-Quartz文档(四)More About Triggers
- [译]Java定时任务调度-Quartz文档(九)Job Stores
- [译]Java定时任务调度-Quartz文档(十一)Advanced (Enterprise) Features
- [译]Java定时任务调度-Quartz Cron 调度
- Quartz.net官方开发指南 第七课 : TriggerListeners和JobListeners
- Quartz.net官方开发指南 第七课 : TriggerListeners和JobListeners
- Quartz 定时任务调度
- LeetCode 19. Remove Nth Node From End of List(C++版)
- Java种遍历Map集合的几种常用方式
- [李景山php]每天laravel[009]-laravel 中级任务翻译---安装
- 关于数组的那些事-数组去重
- Gradle项目同步失败错误
- [译]Java定时任务调度-Quartz文档(七)TriggerListeners and JobListeners
- opengl画五角星
- Android Things HelloWorld
- 常用关键字
- cocos2d-x 粒子效果内存泄露及Unity一定范围内出怪实现备份。
- 异或加密原理及实例
- Class.forName()用法详解
- 用vs2015 编译 web app ionic
- MurmurHash3