定時任務 Quarzt

  Quartz.Net是一個從java版的Quartz移植過來的定時任務框架,能夠實現異常靈活的定時任務。java

  Quartz 有三個概念分別是 計劃者(ISchedeler)、工做(IJob)、觸發器(Trigger)。框架

  給計劃者(Schedeler)一個工做(Job),讓他在Trigger(某個條件)觸發的條件下執行這個工做(Job),將要定時執行的任務代碼寫到實現IJob接口的Execute方法中便可使用,時間到來的時候Execute方法會被調用。ide

  首先安裝nuget包 : Quartzui

  建立Job:spa

 1 public class JobTest : IJob
 2 {
 3         public Task Execute(IJobExecutionContext context)
 4         {
 5             return Task.Run(() =>
 6             {
 7                 try
 8                 {
 9                     Console.WriteLine("任務執行啦" + DateTime.Now);
10                 }
11                 catch (Exception ex)
12                 {
13                     ILog log = LogManager.GetLogger(typeof(JobTest));
14                     log.Error("定時任務出錯", ex);
15                 }
16             });
17         }
18 }
建立Job

  建立計劃者,觸發器:code

 1  private static void Main(string[] args)
 2 {
 3             IScheduler sched = new StdSchedulerFactory().GetScheduler().Result;//定義計劃者
 4             JobDetailImpl jbBossReport = new JobDetailImpl("JobTest", typeof(JobTest));//時間到來時,執行TestJob類中的context方法。同時給該執行任務命名爲jdTest
 5             var triggerBossReport = CronScheduleBuilder.CronSchedule("0/7 * * * * ?").Build(); //肯定觸發器
 6             triggerBossReport.Key = new TriggerKey("triggerJobTest");//觸發器命名爲triggerJobTest
 7             sched.ScheduleJob(jbBossReport, triggerBossReport);//計劃者sched在觸發器triggerBossReport執行的時候,進行jbBossReport工做。
 8             sched.Start();
 9             Console.ReadKey();
10 }
建立計劃者,觸發器

執行結果:blog

      

  cron表達式 參考 http://cron.qqe2.com/   接口

相關文章
相關標籤/搜索