using Quartz; using Quartz.Impl; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Text; using System.Threading.Tasks; using WebAPIBase.Utils; namespace WebAPIBase.Service { public class QuartzTask { /// /// 发邮件 /// /// public async Task SendEmailAsync() { NlogHelper.quartzLogger.Info("开始 SendEmailAsync"); // 从工厂中获取调度程序实例 NameValueCollection props = new NameValueCollection { { "quartz.serializer.type", "binary" } }; StdSchedulerFactory factory = new StdSchedulerFactory(props); //通过工场类获得调度器 var _scheduler = await factory.GetScheduler(); //开启调度器 await _scheduler.Start(); //创建触发器(也叫时间策略) var trigger = TriggerBuilder.Create() .StartNow() //.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever())//每10秒执行一次 //.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever()) //每5分钟执行一次 .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(8, 0)) //每天6:30执行 .Build(); //创建作业实例 //Jobs即我们需要执行的作业 var jobDetail = JobBuilder.Create() .WithIdentity("Myjob", "group")//我们给这个作业取了个“Myjob”的名字,并取了个组名为“group” .Build(); //将触发器和作业任务绑定到调度器中 await _scheduler.ScheduleJob(jobDetail, trigger); } } }