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";
|
/// <summary>
|
/// 初始化
|
/// </summary>
|
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<SynZyDayInfoDay>().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<SynZyDayInfoDayJob>().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();
|
}
|
|
}
|
}
|