日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)C#.NET → 不需要配置文件就可以使用Quartz.NET的方法

      不需要配置文件就可以使用Quartz.NET的方法

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時(shí)間:2011/4/4 22:49:19字體大。A-A+

      作者:佚名點(diǎn)擊:432次評論:3次標(biāo)簽: winform

      • 類型:編程輔助大小:3.3M語言:中文 評分:4.4
      • 標(biāo)簽:
      立即下載

      寫博客寫上癮了,怎么辦?

      本來沒打算寫這篇隨筆,但是今天突然解決了Quartz.NET的一個(gè)問題,實(shí)在想分享一下。網(wǎng)上搜索到的一堆Quartz.NET文章,都是談如何通過配置文件來使用Quartz.NET。

      我們只是想簡單使用一下,取代原來在Windows中使用的任務(wù)計(jì)劃,每天定時(shí)發(fā)兩封提醒郵件,實(shí)在不想在一堆配置中掙扎。

      先簡單介紹一下Quartz.NET:

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

      以上簡介內(nèi)容引用自leeolevis寫的“Quartz.NET作業(yè)調(diào)度框架詳解”。

      下面我們用幾行代碼搞定它。

      1. 定義要執(zhí)行的任務(wù)(實(shí)現(xiàn)Quartz.IJob接口),代碼如下:

      
      

      public class ShiftNotify : IJob
      {
      public void Execute(JobExecutionContext context)
      {
      //在此執(zhí)行計(jì)劃任務(wù)
      //比如:“時(shí)間不早了,該起床啦!”
      }
      }

      2. 將要計(jì)劃執(zhí)行的任務(wù)加入到調(diào)度器中。

      完成這一步,需要三樣?xùn)|西:調(diào)度器(IScheduler)、任務(wù)(JobDetail)、觸發(fā)器(Trigger)。

      由于是在Web應(yīng)用程序中進(jìn)行調(diào)度,代碼需要寫在Global.asax.cs的Application_Start()方法中。

      a) 創(chuàng)建一個(gè)調(diào)度器(職責(zé):如果觸發(fā)器設(shè)定的條件滿足,就讓預(yù)先定義好的任務(wù)干活):
      ISchedulerFactory factory = new StdSchedulerFactory();
      IScheduler scheduler = factory.GetScheduler();
      scheduler.Start();

      b) 創(chuàng)建一個(gè)任務(wù)(第1步已經(jīng)定義好的任務(wù),真正干活的):

      
      

      JobDetail job = new JobDetail("MyJob", typeof(ShiftNotify));

      c) 創(chuàng)建一個(gè)觸發(fā)器(從什么時(shí)間開始,多長時(shí)間觸發(fā)一次):
      Trigger trigger = TriggerUtils.MakeMinutelyTrigger(1);
      trigger.StartTimeUtc = TriggerUtils.GetEvenMinuteDate(DateTime.UtcNow);
      trigger.Name = "ShiftNotify";

      第一行代碼設(shè)置的是1分鐘觸發(fā)一次。

      第二行代碼設(shè)置的是開始時(shí)間。之前遇到的問題就出現(xiàn)在這里。將DateTime.UtcNow寫成了DateTime.Now,怎么也觸發(fā)不了。

      d) 將任務(wù)與觸發(fā)器添加到調(diào)度器中:

      
      

      scheduler.ScheduleJob(job, trigger);

      好了,完工!

      不需要任何配置文件,Quartz.NET就按你的指令,定時(shí)為你服務(wù)了。

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(3)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)