using CommonUtil;
|
using Quartz;
|
using Quartz.Impl;
|
using ScheduledTasks.Handle;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.Specialized;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace ScheduledTasks
|
{
|
public class Scheduler
|
{
|
private IScheduler scheduler;
|
|
/// <summary>
|
/// 创建调度任务的入口
|
/// </summary>
|
/// <returns></returns>
|
|
public async Task Start()
|
{
|
await StartJob();
|
}
|
|
/// <summary>
|
/// 创建调度任务的公共调用中心
|
/// </summary>
|
/// <returns></returns>
|
public async Task StartJob()
|
{
|
//创建一个工厂
|
NameValueCollection param = new NameValueCollection()
|
{
|
{ "testJob","test"}
|
};
|
|
StdSchedulerFactory factory = new StdSchedulerFactory(param);
|
//创建一个调度器
|
scheduler = await factory.GetScheduler();
|
//开始调度器
|
await scheduler.Start();
|
|
|
//有赞和1688token更新
|
string tokenupdate = ConfigUtil.GetValue<string>("job_tokenupdate");
|
await CreateJob<TokenUpdateHandle>("token更新", "token更新", tokenupdate);
|
await CreateJob<DataStatisticsHandle>("数据统计", "数据统计", ConfigUtil.GetValue<string>("job_datastatic"));
|
//await CreateJob<YzTradeVerifyHandle>("有赞订单校验", "有赞订单校验", ConfigUtil.GetValue<string>("job_yztradeverify"));
|
await CreateJob<WxMiniTokenHandle>("销微信小程序token更新", "销微信小程序token更新", ConfigUtil.GetValue<string>("job_fxwxtoken"));
|
}
|
|
|
/// <summary>
|
/// 创建运行的调度器
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="name"></param>
|
/// <param name="group"></param>
|
/// <param name="cronTime"></param>
|
/// <returns></returns>
|
public async Task CreateJob<T>(string name, string group, string cronTime) where T : IJob
|
{
|
//创建一个作业
|
var job = JobBuilder.Create<T>()
|
.WithIdentity("name" + name, "group" + group)
|
.Build();
|
|
//创建一个触发器
|
var tigger = (ICronTrigger)TriggerBuilder.Create()
|
.WithIdentity("name" + name, "group" + group)
|
.StartNow()
|
.WithCronSchedule(cronTime)
|
.Build();
|
|
//把作业和触发器放入调度器中
|
await scheduler.ScheduleJob(job, tigger);
|
}
|
}
|
}
|