webapi+Quartz.NET解決若干定時程序同時運行的問題


項目現狀:

有若干定時程序需要自啟動運行,為了簡便程序部署等問題,采取這種辦法把定時程序集中管理到webapi中跟隨api發布

代碼架構介紹:

新建一個類庫,類庫引用Quartz(Quartz.2.3.2),每個需要統一管理的程序新建一個文件,其中包括處理程序類和接口

類庫中做一個接口靜態類,便於api的Application_Start方法調用

其中JobScheduler類的靜態方法如下:

 public static void Start()
        {                   
            StdSchedulerFactory factory = new StdSchedulerFactory();
            IScheduler scheduler = factory.GetScheduler();        

            /*-------------計划任務代碼實現------------------*/
            //創建任務1
            IJobDetail job = JobBuilder.Create<CityData.CityDataCaiji>().Build();
            //創建觸發器1
            ITrigger trigger = TriggerBuilder.Create().WithIdentity("TimeTrigger", "TimeGroup")
                .WithSimpleSchedule(t => t
                .WithIntervalInMinutes(5)
                .RepeatForever())
                .Build();

           //創建任務2
            IJobDetail job1 = JobBuilder.Create<DataBaseBackup.DatabaseBackup>().Build();
            //創建觸發器2
            ITrigger trigger1 = TriggerBuilder.Create().WithIdentity("TimeTrigger1", "TimeGroup1")
                .WithSimpleSchedule(t => t
                .WithIntervalInMinutes(10)
                .RepeatForever())
                .Build();
            //添加任務及觸發器至調度器中
            scheduler.ScheduleJob(job, trigger);
            scheduler.ScheduleJob(job1, trigger1);
            scheduler.Start();
        

        }

每個定時程序分別差功能鍵自己的任務和觸發器,由scheduler統一調度。


免責聲明!

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



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