|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Web;
|
|
using Quartz;
|
using Quartz.Impl;
|
using System.IO;
|
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Hosting;
|
|
namespace IStation.WebApi
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public class ScheduleTask
|
{
|
static string JOB_GROUP_NAME = "IStationChPredictTaskGrp";
|
/// <summary>
|
/// 初始化
|
/// </summary>
|
public static void Initial()
|
{
|
//var scheduler = StdSchedulerFactory.GetDefaultScheduler().GetAwaiter().GetResult();
|
|
|
|
|
//创建一个标准调度器工厂
|
ISchedulerFactory factory = new StdSchedulerFactory();
|
//通过从标准调度器工厂获得一个调度器,用来启动任务
|
var scheduler = factory.GetScheduler();
|
//调度器的线程开始执行,用以触发Trigger
|
scheduler.Start();
|
|
|
////https://www.cnblogs.com/yaopengfei/p/8542771.html
|
|
|
|
|
|
//定期信息
|
IJobDetail detailUserInfoLog = JobBuilder.Create<SynZyDayInfoDayJob>().WithIdentity("SynZyDayInfoDayJob", JOB_GROUP_NAME)
|
.UsingJobData("Type", "ABCd").Build();//传参数
|
ITrigger triggerUserInfoLog = TriggerBuilder.Create()
|
.WithIdentity("SynZyDayInfoDayJob", JOB_GROUP_NAME)
|
.StartNow()
|
//Cron 生成器 https://cron.qqe2.com/
|
.WithCronSchedule("0 59 16 ? * *")// 0 5 3 ? * * 每天下午 16 : 59 触发
|
.Build();
|
|
scheduler.ScheduleJob(detailUserInfoLog, triggerUserInfoLog);
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
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();
|
}
|
|
}
|
|
|
|
}
|