Quartz.NET實現作業調度(3.0版本實現)定時執行一個任務


2.0版本請參考https://www.cnblogs.com/best/p/7658573.html 這里的文章很詳細:

我們現在想每5秒鍾往txt文件夾里存儲一個時間

首先:定義一個類,實現Quartz.IJob接口,實現方法Execute,TimeJob.cs文件的代碼如下:

using Quartz;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MvcApplication1
{
    public class TimeJob : IJob
    {
        public void Execute(IJobExecutionContext context)
        {
            //向c:\Quartz.txt寫入當前時間並換行
            System.IO.File.AppendAllText(@"c:\Quartz.txt", DateTime.Now+Environment.NewLine);
        }
    }
}

  

現在Quartz.NET3.0 操作如下:和2.0版本還是有預定的區別,引入了TASK相關的概念,具體參照  https://www.quartz-scheduler.net/documentation/quartz-3.x/migration-guide.html

 //1,調度器
            Task<IScheduler> taskScheduler;
            IScheduler scheduler1;
            //調度器工廠
            ISchedulerFactory factory = new StdSchedulerFactory();

            //創建一個調度器
            taskScheduler = factory.GetScheduler();
            scheduler1 = taskScheduler.Result;

            IJobDetail job = JobBuilder.Create<TimeJob>().WithIdentity("job1", "group1").Build();

            //3、創建一個觸發器

            //ITrigger trigger = TriggerBuilder.Create()
            //    .WithIdentity("trigger1", "group1")
            //    .WithCronSchedule("0/5 * * * * ?")     //5秒執行一次
            //    .Build();

            //3.1另外一種觸發器
            ISimpleTrigger trigger1 = (ISimpleTrigger)TriggerBuilder.Create()
                   .WithIdentity("trigger1", "group1")
                   .StartNow().WithSimpleSchedule(x => x.WithIntervalInSeconds(5).RepeatForever()).Build();

            //4、將任務與觸發器添加到調度器中
            //scheduler1.ScheduleJob(job, trigger);
            scheduler1.ScheduleJob(job, trigger1);
            //5、開始執行
            scheduler1.Start();

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM