1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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 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<SendEmailJob>()
- .WithIdentity("Myjob", "group")//我们给这个作业取了个“Myjob”的名字,并取了个组名为“group”
- .Build();
- //将触发器和作业任务绑定到调度器中
- await _scheduler.ScheduleJob(jobDetail, trigger);
- }
- }
- }
|