[譯]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實例去通知應用時,使用監聽器很是方便。

相關文章
相關標籤/搜索