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 RunAsync() { NlogHelper.quartzLogger.Info("开始 RunAsync"); // 从工厂中获取调度程序实例 //NameValueCollection props = new NameValueCollection //{ // { "quartz.serializer.type", "binary" } //}; StdSchedulerFactory factory = new StdSchedulerFactory(); //通过工场类获得调度器 var _scheduler = await factory.GetScheduler(); //开启调度器 await _scheduler.Start(); #region 执行进度报告发邮件作业 //创建触发器(也叫时间策略) var trigger = TriggerBuilder.Create() .StartNow() //.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever())//每10秒执行一次 //.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever()) //每5分钟执行一次 .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(8, 0)) //每天8:00执行 .Build(); //创建作业实例 //Jobs即我们需要执行的作业 var jobDetail = JobBuilder.Create() .WithIdentity("Myjob", "group")//我们给这个作业取了个“Myjob”的名字,并取了个组名为“group” .Build(); //将触发器和作业任务绑定到调度器中 await _scheduler.ScheduleJob(jobDetail, trigger); #endregion #region 执行给王帅发邮件作业 //创建触发器(也叫时间策略) var triggerWang = TriggerBuilder.Create() .StartNow() //.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever())//每10秒执行一次 .WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever()) //每5分钟执行一次 //.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(8, 0)) //每天8:00执行 .Build(); //创建作业实例 //Jobs即我们需要执行的作业 var jobDetailWang = JobBuilder.Create() .WithIdentity("MyjobWang", "group")//我们给这个作业取了个“Myjob”的名字,并取了个组名为“group” .Build(); //将触发器和作业任务绑定到调度器中 await _scheduler.ScheduleJob(jobDetailWang, triggerWang); #endregion } } }