Quartz.NET 2.x 文件翻譯 - Lesson 7:TriggerListeners 和JobListeners
Quartz.NET 2.x 文件翻譯 - Lesson 7:TriggerListeners 和JobListeners 檢視官網英文原文
Listener就是scheduler排程執行我們建立的任務執行發生的事件監聽物件,比如,TriggerListeners接收和triggers有關係的事件,JobListeners接收和job相關的事件。
觸發事件主要包括:trigger觸發,trigger觸發misfire,trigger觸發完成。
ITriggerListener 介面
public interface ITriggerListener { string Name { get; } void TriggerFired(ITrigger trigger, IJobExecutionContext context); bool VetoJobExecution(ITrigger trigger, IJobExecutionContext context); void TriggerMisfired(ITrigger trigger); void TriggerComplete(ITrigger trigger, IJobExecutionContext context, int triggerInstructionCode); }
Job相關的事件包括:通知job執行,job完成通知。
IJobListener 介面:
The IJobListener Interface public interface IJobListener { string Name { get; } void JobToBeExecuted(IJobExecutionContext context); void JobExecutionVetoed(IJobExecutionContext context); void JobWasExecuted(IJobExecutionContext context, JobExecutionException jobException); }
Using Your Own Listeners
建立一個listener監聽器,只需要建立一個物件並實現是itriggerlistener和/或ijoblistener介面就可以了。Listeners 稍後會在執行的時候在scheduler註冊,需要注意的是我們必須給監聽器命名name屬性。為了使用方便,與其實現這些介面,我們也可以擴充套件JobListenerSupport或TriggerListenerSupport類,重寫我們需要使用的事件就ok了。
Listeners監聽註冊在scheduler的ListenerManager通過匹配的方式用來接收Jobs/Triggers的事件。
Listeners監聽在scheduler執行時註冊,並不會在JobStore中儲存。這是因為監聽器通常是應用程式的一個整合點。因此,每次我們的應用程式執行時,監聽器都需要重新註冊scheduler排程程式。
新增一個JobListener監聽一個特定的job:
scheduler.ListenerManager.AddJobListener(myJobListener, KeyMatcher<JobKey>.KeyEquals(new JobKey("myJobName", "myJobGroup")));新增一個JobListener監聽一個特定的group組中的所有job:
scheduler.ListenerManager.AddJobListener(myJobListener, GroupMatcher<JobKey>.GroupEquals("myJobGroup"));新增一個JobListener監聽兩個特定的group組中的所有job:
scheduler.ListenerManager.AddJobListener(myJobListener, OrMatcher<JobKey>.Or(GroupMatcher<JobKey>.GroupEquals("myJobGroup"), GroupMatcher<JobKey>.GroupEquals("yourGroup")));新增一個JobListener監聽所有job:
scheduler.ListenerManager.AddJobListener(myJobListener, GroupMatcher<JobKey>.AnyGroup());
Listener監聽並非是quartz.net的大多數使用者使用,但如果我們的應用有建立事件通知的需求時,我們就需要job本身明確的來通知應用。
由龐順龍最後編輯於:3年前
內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。
相關文章
- Quartz.NET 2.x 文件翻譯 - Lesson 2:Jobs 和 Triggersquartz
- Quartz.NET 2.x 文件翻譯 - Lesson 8:SchedulerListenersquartz
- Quartz.NET 2.x 文件翻譯 - Lesson 9:JobStoresquartz
- Quartz.NET 2.x 文件翻譯 - Lesson 1:使用Quartzquartz
- Quartz.NET 2.x 文件翻譯 - Lesson 10:Configuration, Resource Usage 和 SchedulerFactoryquartz
- Quartz.NET 2.x 文件翻譯 - Lesson 3:Jobs 和 Triggers深入瞭解quartz
- Quartz.NET 2.x 文件翻譯 - Lesson 5:SimpleTrigger觸發模式quartz模式
- Quartz.NET 2.x 文件翻譯 - Lesson 6:CronTrigger觸發模式quartz模式
- Quartz.NET 2.x 文件翻譯 - Lesson 11:Advanced (Enterprise) Features 高階功能quartz
- Quartz.NET 2.x 文件翻譯 - Lesson 12:Quartz的其他各種特性quartz
- Quartz.NET 2.x 文件翻譯 - Lesson 4:更多Triggers觸發器說明quartz觸發器
- Quartz.NET 2.x 文件翻譯-文章目錄quartz
- 文件翻譯器怎麼用?如何翻譯Word文件?
- MPAndroidChart文件翻譯Android
- 有ppt文件翻譯軟體嗎?如何翻譯整篇ppt文件
- Moya官方文件翻譯
- 實用的Word文件翻譯方法分享,讓Word文件快速翻譯
- 怎麼翻譯整篇Excel文件?Excel文件翻譯一招搞定Excel
- 怎麼把Excel文件翻譯成中文?Excel文件翻譯方法介紹Excel
- docker官方文件翻譯3Docker
- docker官方文件翻譯5Docker
- docker官方文件翻譯2Docker
- docker官方文件翻譯1Docker
- influxdb官網文件翻譯UX
- SnapKit 中文文件翻譯APK
- rabbitmq 官方文件翻譯-2MQ
- docker官方文件翻譯4Docker
- Draft 文件翻譯 - API - ContentStateRaftAPI
- TailWind文件翻譯說明以及每日翻譯進度AI
- HTTPie 官方文件中文翻譯版HTTP
- SpringAop英文文件部分翻譯Spring
- Gin 框架中文文件(翻譯)框架
- BBNorm官方指導文件翻譯ORM
- 文件翻譯軟體怎麼用?怎麼把Excel文件翻譯成中文版Excel
- oc-plugin-book 文件協作翻譯外掛(類似 LearnKu.com 的文件翻譯)Plugin
- SQLAlchemy 2.0 中文文件翻譯完成SQL
- 重新翻譯版本|Redux-Reselect 文件Redux
- Draft 文件翻譯 - 快速開始 - 概念Raft