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 Utils; namespace PMS.NetCore.Service { public class QuartzTask { /// /// 运行定时任务 /// /// public async Task RunAsync() { NlogHelper.quartzLogger.Info("开始 RunAsync"); StdSchedulerFactory factory = new StdSchedulerFactory(); //通过工场类获得调度器 var _scheduler = await factory.GetScheduler(); //开启调度器 await _scheduler.Start(); #region 昆山项目使用定时任务 if (AppSettingsHelper.Configuration["company"]?.ToString() == "kunshan") { #region 执行发短信作业 注释掉,暂不执行 ////创建触发器(也叫时间策略) //var trigger = TriggerBuilder.Create() // .StartNow() // //.WithSimpleSchedule(x => x.WithIntervalInMinutes(2).RepeatForever())//每10秒执行一次 // //.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever()) //每5分钟执行一次 // .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(8, 0)) //每天8:00执行 // .Build(); ////创建作业实例 ////Jobs即我们需要执行的作业 //var jobDetailkunshan = JobBuilder.Create() // .WithIdentity("Myjobkunshan", "group")//我们给这个作业取了个“Myjob”的名字,并取了个组名为“group” // .Build(); ////将触发器和作业任务绑定到调度器中 //await _scheduler.ScheduleJob(jobDetailkunshan, trigger); #endregion } #endregion #region 中浩德系统使用定时任务 if (AppSettingsHelper.Configuration["company"]?.ToString() == "zhonghaode") { #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 } #endregion #region 物业缴费订单定时处理任务 ////创建触发器(也叫时间策略) var triggerBywy = TriggerBuilder.Create() .StartNow() .WithSimpleSchedule(x => x.WithIntervalInSeconds(3).RepeatForever())//每3秒执行一次 .Build(); //创建作业实例 //Jobs即我们需要执行的作业 var jobDetailBywy = JobBuilder.Create() .WithIdentity("Myjobwy", "group")//我们给这个作业取了个“Myjobwy”的名字,并取了个组名为“group” .Build(); //将触发器和作业任务绑定到调度器中 await _scheduler.ScheduleJob(jobDetailBywy, triggerBywy); #endregion } } }