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