亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Quartz.net使用總結

2019-11-17 01:50:22
字體:
來源:轉載
供稿:網友

Quartz.net使用總結

進來項目中用到了 任務調度 來實現短信發送網關,所以這里分享下Quartz.net 的使用經驗。任務調度選用了 Quartz.net 來實現,之前用的是C#中自帶的window服務安裝,這次也打算用Topshel來做window服務,其實感覺差不多。ok,接下來說下 Quartz.net 在開發中的使用:

Quartz.NET簡介

作業調度的目標在于按照預先確定的時間和指定的順序來確保高效的數據處理流程,從而最大限度的使用系統資源。批處理流程是一種在無需最終用戶干預的方式下在后臺通過順序方式運行的操作。

Quartz.NET是一個開源的作業調度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#寫成,可用于winform和asp.net應用中。它提供了巨大的靈活性而不犧牲簡單性。你能夠用它來為執行一個作業而創建簡單的或復雜的調度。它有很多特征,如:數據庫支持,集群,插件,支持cron-like表達式等等。

Quartz.NET 是一個開源的作業調度框架,它可以被在小型應用程序甚至是企業級的應用程序。它有如下幾個特點:

  • API 操作簡單,只要幾行簡單的代碼你就可以在應用程序里面實現自己的作業調度,并實時監視作業執行情況
  • 觸發器功能強大,比 Windows 的任務計劃提供更細的觸發粒度,你可以使用“Cron表達式(后文將介紹)”來實現如:每周星期一到星期五 8:00am,5:00pm(工作時間) 執行某一件任務
  • 良好的可擴展性,它基于接口編程,你可以實現自己的 Schedule 調度器,Job 作業,以及 Trigger 觸發器等
  • 作業可以保存在 RAM 中,也可以持久化到數據庫,支持多種數據庫類型:SqlServer、OracleMySQL
  • 集群,這是一個高級應用,可以在多臺計算機之間創建負載平衡、容錯處理

Quartz.NET使用

首先引用下面的dll

前4個是Quartz.NET使用所必須的,Toshelf是用來做window服務所用的

添加QuartzHelp類庫

添加JobDemo.cs,實現IJob接口。

 1 namespace QuartzHelp 2 { 3     public class JobDemo : IJob 4     { 5         //日志對象 6         PRivate static readonly ILog logger = LogManager.GetLogger(typeof(JobDemo)); 7  8         public void Execute(IJobExecutionContext context) 9         {10             logger.Info("JobDemo開始運作,模擬處理200ms的程序");11             Thread.Sleep(200);12             logger.Info("JobDemo處理完");13         }14     }15 }
View Code

添加WindowControl 控制臺

添加Service.cs文件,作為任務調度的入口

 1 namespace WindowControl 2 { 3     public class Service 4     { 5         private readonly ILog logger; 6         private IScheduler scheduler; 7         public Service() 8         { 9             logger = LogManager.GetLogger(typeof(Service));10             ISchedulerFactory schedulerFactory = new StdSchedulerFactory();11             scheduler = schedulerFactory.GetScheduler();12         }13 14         public void Start()15         {16             scheduler.Start();17             logger.Info("Quartz服務成功啟動");18         }19 20         public void Stop()21         {22             scheduler.Shutdown(true);23             logger.Info("Quartz服務成功終止");24         }25 26     }27 }
View Code

在Program.cs文件中,啟動任務調度

 1 namespace WindowControl 2 { 3     class Program 4     { 5         static void Main(string[] args) 6         { 7             HostFactory.Run(x => 8             { 9                 x.Service<Service>((s) =>10                 {11                     s.SetServiceName("ser");12                     s.ConstructUsing(name => new Service());13                     s.WhenStarted((t) => t.Start());14                     s.WhenStopped((t) => t.Stop());15                 });16 17                 x.RunAsLocalSystem();18 19                 //服務的描述20                 x.SetDescrView Code

添加配置文件

新建一個Configs的文件夾,首先添加quartz_jobs.xml(作為 調度任務 的配置文件)

 1 <?xml version="1.0" encoding="UTF-8"?> 2  3 <!-- This file contains job definitions in schema version 2.0 format --> 4  5 <job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"> 6  7   <processing-directives> 8     <!-- 在計劃作業和觸發器是應遵循的命令和原則 --> 9     <overwrite-existing-data>true</overwrite-existing-data>10   </processing-directives>11 12   <schedule>13     <job>14       <name>myJob</name>15       <group>myJobGroup</group>16       <description>第一個工作任務</description>17       <job-type>QuartzHelp.JobDemo, QuartzHelp</job-type>18       <durable>true</durable>19       <recover>false</recover>20     </job>21     <trigger>22       <cron>23         <name>Trigger</name>24         <group>TriggerGroup</group>25         <description>Simple trigger to simply fire sample job</description>26         <job-name>myJob</job-name>27         <job-group>myJobGroup</job-group>28         <!--每10秒中執行一次-->29         <cron-expression>0/01 * * * * ?</cron-expression>30       </cron>31     </trigger>32   </schedule>33 </job-scheduling-data>
View Code

quartz_jobs.xml配置項說明:

 1 <?xml version="1.0" encoding="utf-8" ?> 2 <!-- This file contains job definitions in schema version 2.0 format --> 3  4 <!--在2.0版本中根結點由<quartz> 變為了<job-scheduling-data>--> 5  <job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"> 6  7    <!--保持默認配置即可,具體作用有待研究--> 8    <processing-directives> 9     <overwrite-existing-data>true</overwrite-existing-data>10   </processing-directives>11 12    <!--任務調度集合-->13    <schedule>14      <!--2.0版本中的job相當于1.x版本中的<job-detail>,這個節點是用來定義每個具體的任務的,多個任務請創建多個job節點即可-->15      <job>16        <!--任務名稱,同一個group中多個job的name不能相同,若未設置group則所有未設置group的job為同一個分組(必須設置)-->17        <name>sampleJob</name>18        <!--任務所屬分組,用于標識任務所屬分組-->19        <group>sampleGroup</group>20        <!--工作任務的描述,用于描述任務具體內容-->21       <description>Sample job for Quartz Server</description>22        <!--任務類型,任務的具體類型及所屬程序集,格式:實現了IJob接口的包含完整命名空間的類名,程序集名稱-->23        <job-type>Quartz.Server.SampleJob, Quartz.Server</job-type>24        <!--<durable>(持久性)-如果一個Job是不持久的, 一旦沒有觸發器與之關聯,它就會被從scheduler 中自動刪除-->25       <durable>true</durable>26       <recover>false</recover>27
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色妞在线综合亚洲欧美| 精品国产一区二区三区久久久狼| 亚洲国产第一页| 久久久国产精品亚洲一区| 国产免费成人av| 欧美又大粗又爽又黄大片视频| 久久精品国产久精国产思思| 国产亚洲精品美女| 欧美疯狂性受xxxxx另类| 清纯唯美亚洲综合| 茄子视频成人在线| 久久久精品美女| 亚洲精品电影久久久| 精品国产一区二区三区久久狼5月| 高清在线视频日韩欧美| 久久韩国免费视频| 91国自产精品中文字幕亚洲| 亚洲天堂av女优| 国内精品模特av私拍在线观看| 日韩免费在线播放| 国产精品第100页| 亚洲二区在线播放视频| 成人亚洲欧美一区二区三区| 国产精品久久综合av爱欲tv| 97精品视频在线观看| 色午夜这里只有精品| 欧美最猛性xxxxx免费| 欧美性视频精品| 久久久亚洲福利精品午夜| 91亚洲永久免费精品| 激情久久av一区av二区av三区| 国产精品视频午夜| 中文字幕日韩免费视频| 搡老女人一区二区三区视频tv| 亚洲电影免费在线观看| 91大神在线播放精品| 欧美性猛交xxxx乱大交蜜桃| 亚洲一级片在线看| 日本精品中文字幕| 成人自拍性视频| 九九热这里只有在线精品视| 国产精品老女人视频| 日韩久久午夜影院| 欧美日韩国产一区中文午夜| 亚洲男人天堂古典| 91超碰中文字幕久久精品| 在线播放精品一区二区三区| 伊人伊成久久人综合网站| 欧美成人精品在线播放| 日韩在线激情视频| 日韩电影免费在线观看中文字幕| 91久久精品视频| 国产成人a亚洲精品| 国产大片精品免费永久看nba| 欧美精品999| 日韩在线观看免费网站| 国产不卡视频在线| 韩国精品美女www爽爽爽视频| 欧美国产日韩中文字幕在线| 日韩久久精品电影| 日韩成人久久久| 九九久久综合网站| 国产成人精品视频在线观看| 欧美理论电影在线播放| 亚洲国产欧美一区| 最近免费中文字幕视频2019| 性色av一区二区咪爱| 国产在线观看精品一区二区三区| 麻豆成人在线看| 欧美日韩一区免费| 91在线观看免费高清完整版在线观看| 国产综合视频在线观看| 成人伊人精品色xxxx视频| 欧美大片在线看| 亚洲伊人一本大道中文字幕| 青青精品视频播放| 亚洲人在线视频| 久久色免费在线视频| 久久av资源网站| 亚洲精品福利视频| 欧美激情中文字幕在线| 国产小视频91| 国产精品日韩一区| 日韩电影中文字幕一区| 日韩av在线免费播放| 国产欧美日韩综合精品| 91在线观看免费观看| 91天堂在线观看| 国产精品白嫩美女在线观看| 国内精品久久久久| 亚洲精品免费av| 中文字幕亚洲欧美| 欧洲美女免费图片一区| 中文字幕免费精品一区高清| 亚洲国产精品一区二区三区| 国产精品网站大全| 中文字幕国内精品| 欧美成人精品在线观看| 国产成人精品免费久久久久| 亚洲国产美女精品久久久久∴| 国产精品电影一区| 欧美性极品xxxx做受| 日产精品99久久久久久| 97精品欧美一区二区三区| 91在线免费观看网站| 久久久久久一区二区三区| 精品美女永久免费视频| 国产精品旅馆在线| 中国china体内裑精亚洲片| 久久人91精品久久久久久不卡| 亚洲欧美日韩久久久久久| 国产精品99久久久久久人| 最近更新的2019中文字幕| 亚洲视频精品在线| 久久精品91久久久久久再现| 91av在线看| www.日韩av.com| 77777少妇光屁股久久一区| 欧美一级黑人aaaaaaa做受| 欧美大胆在线视频| 欧美精品性视频| 色狠狠av一区二区三区香蕉蜜桃| 国产精品7m视频| 欧美日本黄视频| 午夜精品久久久久久久99热浪潮| 亚洲精品久久久久中文字幕二区| 亚洲一区二区久久| 91免费精品视频| 亚洲日本中文字幕| 亚洲无限乱码一二三四麻| 日本午夜精品理论片a级appf发布| 亚洲精品色婷婷福利天堂| 91精品啪在线观看麻豆免费| 亚洲欧美成人在线| 久久久亚洲精选| 久久久精品免费视频| 欧美午夜精品久久久久久久| 国产va免费精品高清在线观看| 久久久av亚洲男天堂| 91免费在线视频网站| 久久亚洲私人国产精品va| 成人在线视频福利| 久久亚洲一区二区三区四区五区高| 国产成人精品999| 亚洲欧美国产精品| 91中文在线视频| 亚洲一区二区中文字幕| 91免费在线视频网站| 国产精国产精品| 久久久久久综合网天天| 日韩av免费观影| 伊人久久男人天堂| 亚洲视频自拍偷拍| 精品欧美激情精品一区| 国产极品精品在线观看| 亚洲国产精品女人久久久| 精品久久久香蕉免费精品视频| 清纯唯美日韩制服另类| 美女久久久久久久| 久久久免费精品视频| 91香蕉嫩草影院入口| 亚洲天堂视频在线观看| 日韩免费电影在线观看| 欧美性黄网官网|