using IStation.Model; using System; using System.Collections.Generic; using System.Linq; using System.Web; using Quartz; using Quartz.Impl; using System.IO; namespace IStation.WebApi { public class ScheduleTask { static string JOB_GROUP_NAME = "IStationChTaskGrp"; /// /// 初始化 /// public static void Initial() { //创建一个标准调度器工厂 ISchedulerFactory factory = new StdSchedulerFactory(); //通过从标准调度器工厂获得一个调度器,用来启动任务 var scheduler = factory.GetScheduler(); //调度器的线程开始执行,用以触发Trigger scheduler.Start(); //https://www.cnblogs.com/yaopengfei/p/8542771.html //同步日志到 { //int syn_minute = 10;//10分钟同步一次 //IJobDetail detailSynZyDayInfoDay = JobBuilder.Create().WithIdentity("SynZyDayInfoDay", JOB_GROUP_NAME) //.UsingJobData("Minutes", syn_minute.ToString()).Build(); //ITrigger triggerSynZyDayInfoDay = TriggerBuilder.Create() // .WithIdentity("SynLogToXPumpTrigger", JOB_GROUP_NAME) // .StartAt(DateTime.Now.AddMinutes(2))//2分钟后 开始执行,不用马上执行 // //.StartNow() // .WithSimpleSchedule(x => x.WithIntervalInMinutes(syn_minute) // .RepeatForever())//永远执行 // .Build(); //scheduler.ScheduleJob(detailSynZyDayInfoDay, triggerSynZyDayInfoDay); } //定期处理用户信息 IJobDetail detailUserInfoLog = JobBuilder.Create().WithIdentity("SynZyDayInfoDayJob", JOB_GROUP_NAME) .UsingJobData("Type", "ABC").Build();//传参数 ITrigger triggerUserInfoLog = TriggerBuilder.Create() .WithIdentity("UserInfoLogTrigger", JOB_GROUP_NAME) .StartNow() //Cron 生成器 https://cron.qqe2.com/ .WithCronSchedule("0 59 16 ? * *")// 0 5 3 ? * * 每天下午 16 : 59 触发 .Build(); scheduler.ScheduleJob(detailUserInfoLog, triggerUserInfoLog); } public static void Close() { ISchedulerFactory factory = new StdSchedulerFactory(); //通过从标准调度器工厂获得一个调度器,用来启动任务 var scheduler = factory.GetScheduler(); JobKey keySynZyDayInfoDayJob = new JobKey("SynZyDayInfoDayJob", JOB_GROUP_NAME); if (keySynZyDayInfoDayJob != null) { scheduler.DeleteJob(keySynZyDayInfoDayJob); } scheduler.Shutdown(); //scheduler.Clear(); } } }