using Quartz;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace IStation.DataProvider
|
{
|
/// <summary>
|
/// 任务辅助类
|
/// </summary>
|
public class JobHelper
|
{
|
private const string _jobName = "Dataob";
|
private const string _jobGroup = "DataJobGroup";
|
private const string _triggerName = "DataJobTrigger";
|
private static IScheduler _sched;//调度器
|
|
/// <summary>
|
/// 开始任务
|
/// </summary>
|
public async void StartJob()
|
{
|
if (_sched != null)
|
return;
|
|
// 1.创建scheduler的引用
|
var fac = new Quartz.Impl.StdSchedulerFactory();
|
_sched = await fac.GetScheduler();
|
|
//2.启动 scheduler
|
await _sched.Start();
|
|
//3.创建任务
|
var job = JobBuilder.Create<DataJob>()
|
.WithIdentity(_jobName, _jobGroup)
|
.Build();
|
|
//4.创建Trigger
|
var trigger = TriggerBuilder.Create()
|
.WithIdentity(_triggerName, _jobGroup)
|
.WithSimpleSchedule(x => x.WithIntervalInSeconds(ConfigHelper.Frequency).RepeatForever().WithMisfireHandlingInstructionNextWithRemainingCount())
|
.Build();
|
|
//5.加入调度管理器
|
await _sched.ScheduleJob(job, trigger);
|
}
|
|
/// <summary>
|
/// 取消任务
|
/// </summary>
|
public void CancelJob()
|
{
|
if (_sched == null)
|
return;
|
_sched.UnscheduleJob(new TriggerKey(_triggerName, _jobGroup));
|
}
|
|
|
|
|
}
|
}
|