using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Threading.Tasks;
using Quartz;
using Quartz.Impl;
using Model.Tools;
namespace Web.BackgroundWorkers
{
public class ConfigJob : IJob
{
public async Task Execute(IJobExecutionContext context)
{
await Task.Run(() =>
{
var conf = ConfigTools.Get();
if (conf.HaveChanges)
{
conf.Export();
conf.HaveChanges = false;
}
});
}
}
public class ConfigScheduler
{
public static async void Start()
{
IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<ConfigJob>().Build();
ITrigger trigger = TriggerBuilder.Create() // создаем триггер
.WithIdentity("trigger2", "group1") // идентифицируем триггер с именем и группой
.StartNow() // запуск сразу после начала выполнения
.WithSimpleSchedule(x => x // настраиваем выполнение действия
.WithIntervalInMinutes(1) // через 5 минуту
.RepeatForever()) // бесконечное повторение
.Build(); // создаем триггер
await scheduler.ScheduleJob(job, trigger); // начинаем выполнение работы
}
}
}