Quartz.NET做爲一款定時框架,它的最小可運行程序以下:javascript
var scheduler = StdSchedulerFactory.GetDefaultScheduler(); scheduler.Start(); //Job執行的任務 var job = JobBuilder.Create<MyJob>().Build(); //Schedule計劃表,能夠設置調用次數,調用間隔 //Trigger觸發器,能夠設置調用開始,結束時間,優先級 var trigger = TriggerBuilder.Create().WithSimpleSchedule( m => m.WithIntervalInSeconds(1).WithRepeatCount(1)) .StartNow()//.EndAt(DateTimeOffset.Now.AddSeconds(10)) .Build(); scheduler.ScheduleJob(job, trigger);
/// <summary> /// 自定義任務 /// </summary> public class MyJob : IJob { public void Execute(IJobExecutionContext context) { //實現具體的業務邏輯 } }
public JobBuilder WithIdentity(string name) { //new一個JobKey,name是key的名稱,group名稱是null key = new JobKey(name, null); return this; }
public JobBuilder SetJobData(JobDataMap newJobDataMap) { jobDataMap = newJobDataMap; return this; }
public JobBuilder UsingJobData(string key, string value) { jobDataMap.Put(key, value); return this; }
//秒 分 時 天 月 年 周 //1. 天或者周必須有一個是?(?表示模糊) //2. * 表示全部值即,秒位爲*表示每秒執行一次 //3. - 表示範圍,分鐘位爲10-12表示每一個小時的10,11,12分執行一次 //4. , 表示每一個值即,分鐘位爲10,20,30表示每一個小時的10,20,30分執行一次 //5. / 表示遞增,秒位爲0/5表示0,5,10,15,20,25,30,35,40,45,50,55秒執行一次 //例子: // * * * * * ? => 每秒執行一次 // 0/5 * * * * ? => 5s執行一次 // 0 * * * * ? => 1min執行一次 // 0 0 1 * * ? => 每月1號執行一次 // 地址:https://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontrigger.html