Quartz.NET是一個開源的作業排程架構,是OpenSymphony 的 Quartz API的.NET移植,它用C#寫成,可用于winform和asp.net應用中。它提供了巨大的靈活性而不犧牲簡單性。
你能夠用它來為執行一個作業而建立簡單的或複雜的排程。
它一些很好的特性:
1:支援叢集,作業分組,作業遠端管理。
2:自定義精細的時間觸發器,使用簡單,作業和觸發分離。
3:資料庫支援,可以寄宿Windows服務,WebSite,winform等。
合适場景:
間隔時間擷取資料,每周固定時間擷取資料,每個月的最後一天執行等等
官網:https://www.quartz-scheduler.net/
開源位址:https://github.com/quartznet/quartznet
此部分是abp官方示例解說,位址:https://github.com/ABPFrameWorkGroup/AbpDocument2Chinese/blob/master/Markdown/Abp/7.3ABP背景服務-內建Quartz.md
基礎概念
Quartz架構的一些基礎概念解釋:
Scheduler 作業排程器。
IJob 作業接口,繼承并實作Execute, 編寫執行的具體作業邏輯。
JobBuilder 根據設定,生成一個詳細作業資訊(JobDetail)。
TriggerBuilder 根據規則,生産對應的Trigger
你也可以實作Quartz的IJob接口來建立一個新的作業,或者派生自JobBase類(定義在Abp.Quartz包中),該類有一些工具屬性和方法(例如:日志記錄和本地化)。如下所示是一個簡單的作業類:
IQuartzScheduleJobManager 接口被用來建立排程作業。你可以在類中注入該接口(或者你可以在你的子產品的PostInitialize方法中解析和使用它)來排程作業。某個包含作業排程的控制器示例:
文檔中隻告訴了我們方法,但是沒說怎麼做,隻能自己摸着石頭過河。
在web項目的xxWebModule中做如下修改
參考:
http://www.cnblogs.com/lzrabbit/archive/2012/04/13/2447609.html 懶惰的肥兔
http://www.cnblogs.com/tommyli/archive/2009/02/09/1386644.html 李占衛(詳細)
http://www.cnblogs.com/jys509/p/4628926.html Quartz.NET 入門(推薦)
http://www.cnblogs.com/jys509/p/4614975.html 使用Topshelf建立Windows服務
https://www.cnblogs.com/mushroom/p/4067037.html