123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- 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
- {
- /// <summary>
- /// 运行定时任务
- /// </summary>
- /// <returns></returns>
- 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<SendEmailJob>()
- .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<SendEmailToChairmanJob>()
- .WithIdentity("MyjobWang", "group")//我们给这个作业取了个“Myjob”的名字,并取了个组名为“group”
- .Build();
- //将触发器和作业任务绑定到调度器中
- await _scheduler.ScheduleJob(jobDetailWang, triggerWang);
- #endregion
- }
- }
- }
|