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;
///
/// 创建调度任务的入口
///
///
public async Task Start()
{
await StartJob();
}
///
/// 创建调度任务的公共调用中心
///
///
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("job_tokenupdate");
await CreateJob("token更新", "token更新", tokenupdate);
}
///
/// 创建运行的调度器
///
///
///
///
///
///
public async Task CreateJob(string name, string group, string cronTime) where T : IJob
{
//创建一个作业
var job = JobBuilder.Create()
.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);
}
}
}