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();
}
}
}