Quartz.NET

Quartz.NET是一個開源的做業調度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#寫成,可用於winform和asp.net應用中。它提供了巨大的靈活性而不犧牲簡單性。你可以用它來爲執行一個做業而建立簡單的或複雜的調度。它有不少特徵,如:數據庫支持,集羣,插件,支持cron-like表達式等等。 
      你曾經須要應用執行一個任務嗎?這個任務天天或每週星期二晚上 11:30,或許僅僅每月的最後一天執行。一個自動執行而無須干預的任務在執行過程當中若是發生一個嚴重錯誤,應用可以知到其執行失敗並嘗試從新執行嗎? 你和你的團隊是用.NET編程嗎?若是這些問題中任何一個你回答是,那麼你應該使用Quartz.NET調度器。 Quartz.NET容許開發人員根據時間間隔(或天)來調度做業。它實現了做業和觸發器的多對多關係,還能把多個做業與不一樣的觸發器關聯。整合了 Quartz.NET的應用程序能夠重用來自不一樣事件的做業,還能夠爲一個事件組合多個做業.
   
   下面是官方的開發指南教程的中文版:英文版的參照官方網站(http://quartznet.sourceforge.net/tutorial.html
  
html

Quartz.net官方開發指南 第一課:使用Quartz.net數據庫

    使用scheduler以前應首先實例化它。使用SchedulerFactory能夠完成scheduler的實例化
編程

Quartz.net官方開發指南 第二課:Jobs And Triggers負載均衡

   JobDetail對象由Quartz客戶端在Job被加入到scheduler時建立。它包含了Job的各類設置屬性以及一個JobDataMap對象,這個對象被用來存儲給定Job類實例的狀態信息。
Trigger對象被用來觸發jobs的執行。你但願將任務歸入到進度,要實例化一個Trigger而且「調整」它的屬性以知足你想要的進度安排。 Triggers也有一個JobDataMap與之關聯,這很是有利於向觸發器所觸發的Job傳遞參數。Quartz打包了不少不一樣類型的 Trigger,但最經常使用的Trigge類是SimpleTrigger和CronTrigger。
框架

Quartz.net官方開發指南 第三課:更多關於Jobs和JobDetailsasp.net

 在所實現的類成爲真正的「Job」時,指望任務所具備的各類屬性須要通知給Quartz。經過JobDetail類能夠完成這個工做,這個類在前面的章節中曾簡短說起過。如今,咱們花一些時間來討論Quartz中Jobs的本質和Job實例的生命週期。
post

Quartz.net官方開發指南 第四課:關於Triggers更多內容 網站

     同Job同樣,trigger很是容易使用,但它有一些可選項須要注意和理解,同時,trigger有不一樣的類型,要按照需求進行選擇  
Quartz.net官方開發指南 第五課: SimpleTrigger
spa

   如 果須要讓任務只在某個時刻執行一次,或者,在某個時刻開始,而後按照某個時間間隔重複執行,簡單地說,若是你想讓觸發器在2007年8月20日上午 11:23:54秒執行,而後每一個隔10秒鐘重複執行一次,而且這樣重複5次。那麼SimpleTrigger 就能夠知足你的要求。
.net

Quartz.net官方開發指南 第六課 : CronTrigger

    若是你須要像日曆那樣按日程來觸發任務,而不是像SimpleTrigger 那樣每隔特定的間隔時間觸發,CronTriggers一般比SimpleTrigger更有用。
使用CronTrigger,你能夠指定諸如「每一個週五中午」,或者「每一個工做日的9:30」或者「從每一個周1、周3、週五的上午9:00到上午 10:00之間每隔五分鐘」這樣日程安排來觸發。甚至,象SimpleTrigger同樣,CronTrigger也有一個StartTime以指定日程 從何時開始,也有一個(可選的)EndTime以指定什麼時候日程再也不繼續。

Quartz.net官方開發指南 第七課 : TriggerListeners和JobListeners

   監聽器是在scheduler事件發生時可以執行動做的對象。能夠看出,TriggerListeners接收與triggers相關的事件,而JobListeners則接收與Job相關的事件。 

Quartz.net官方開發指南 第八課:SchedulerListeners

  SchedulerListeners同TriggerListeners及JobListeners很是類似,SchedulerListeners只接收與特定trigger 或job無關的Scheduler自身事件通知。
Scheduler相關的事件包括:增長job或者trigger,移除Job或者trigger, scheduler內部發生的錯誤,scheduler將被關閉的通知,以及其餘。

Quartz.net官方開發指南 第九課: JobStore

    JobStore負 責保持對全部scheduler 「工做數據」追蹤,這些工做數據包括:job(任務),trigger(觸發器),calendar(日曆)等。爲你的Quartz scheduler選擇合適的JobStore是很是重要的一步,幸運的是,若是你理解了不一樣的JobStore之間的差異,那麼選擇就變得很是簡單。在 提供產生scheduler 實例的SchedulerFactory的屬性文件中聲明scheduler所使用的JobStore(以及它的配置)

Quartz.net官方開發指南 第十課: 配置、資源使用以及SchedulerFactory

    Quartz以模塊方式構架,所以,要使它運行,幾個組件必須很好的咬合在一塊兒。幸運的是,已經有了一些現存的助手能夠完成這些工做  

Quartz.net官方開發指南 第十一課: 高級(企業級)屬性

   集羣只能用在使用ADO.NET-Jobstore的狀況。特新包括負載均衡和容錯(若是JobDetail的"request recovery"標記被設置爲true) 

Quartz.net官方開發指南 第十二課:Quartz 的其餘特性

  Plug-Ins 插件 :Quartz提供了一個接口(ISchedulerPlugin)來插入附加的功能。   JobFactory :當觸發器觸發時,與之相關聯的任務被Scheduler中配置的JobFactory所實例華。缺省的JobFactory只是簡單地建立一個Job實 例。你也許想建立本身的JobFactory實現,以完成諸如讓應用的IoC 或者 DI容器產生/初始化job實例的功能。 'Factory-Shipped' Jobs :Quartz也提供了一些能夠在你的應用中使用的實用的Jobs,好比,發郵件、調用遠程對象。這些外來的Job能夠在Quartz.Jobs命名空間裏中找到。

相關文章
相關標籤/搜索