[译]Quartz.NET 框架 教程(中文版)2.2.x 之第七课 触发监听器和做业任务监听器

第七课:触发监听器和做业任务监听器spa

        监听器是在调度器中基于事件机制执行操做的对象。你大概能够猜到,触发监听器接收响应跟触发器有关的事件,做业任务监听器接收响应跟做业任务有关的事件。

        跟触发器有关的事件包括:触发器被触发,触发器触发失败(在触发器课程中讨论过),以及触发器触发完成(触发器完成后做业任务开始运行)。code

 1 public interface ITriggerListener
 2 {
 3      string Name { get; }
 4 
 5      void TriggerFired(ITrigger trigger, IJobExecutionContext context);
 6 
 7      bool VetoJobExecution(ITrigger trigger, IJobExecutionContext context);
 8 
 9      void TriggerMisfired(ITrigger trigger);
10 
11      void TriggerComplete(ITrigger trigger, IJobExecutionContext context, int triggerInstructionCode);
12 }

 跟做业任务相关的事件包括:job即将被执行的通知和job执行完成的通知事件。对象

The IJobListener Interfaceblog

 1 public interface IJobListener
 2 {
 3     string Name { get; }
 4 
 5     void JobToBeExecuted(IJobExecutionContext context);
 6 
 7     void JobExecutionVetoed(IJobExecutionContext context);
 8 
 9     void JobWasExecuted(IJobExecutionContext context, JobExecutionException jobException);
10 } 

使用本身开发的监听器继承


       要建立一个监听器,能够简单地建立一个实现org.quartz.TriggerListener或org.quartz.JobListener接口的对象便可。监听器会在运行期间注册到调度器中,而且必需要给定监听器名(或者更确切地说,监听器会调用getName方法获取本身的名字)。

       为了方便使用,监听器除了实现这些接口,你还能够继承ITriggerListener 和IJobListener 类,能够只重写你感兴趣的事件方法。

       监听器注册到调度器中的监听器管理类时还携带着一个匹配器,这个匹配器描述了做业任务和触发器的监听器想接收的事件。

       监听器在运行期间注册到调度中,可是不会把做业任务和触发器存储到JobStore中。那是由于监听器在你的应用中一般是一些点的集合。所以,每次应用运行时,监听器都须要从新在调度器中注册。接口

在一个指定的做业任务中添加Job监听器:事件

scheduler.ListenerManager.AddJobListener(myJobListener, KeyMatcher<JobKey>.KeyEquals(new JobKey("myJobName", "myJobGroup")));

 

在你感兴趣的一个做业组中全部的做业任务添加上Job监听器:开发

scheduler.ListenerManager.AddJobListener(myJobListener, GroupMatcher<JobKey>.GroupEquals("myJobGroup"));

 


 在你感兴趣的两个做业组中全部的做业任务添加上Job监听器:
scheduler.ListenerManager.AddJobListener(myJobListener,
   get

OrMatcher<JobKey>.Or(GroupMatcher<JobKey>.GroupEquals("myJobGroup"), GroupMatcher<JobKey>.GroupEquals("yourGroup")));

 


   在全部做业中添加Job监听器:string

1 scheduler.ListenerManager.AddJobListener(myJobListener, GroupMatcher<JobKey>.AnyGroup());

        注册Trigger监听器也用一样的方法。    大部分的Quartz用户都不会用到监听器,可是当应用要求建立须要的事件通知时,而没有Job实例去通知应用时,使用监听器很是方便。

相关文章
相关标签/搜索