Я пытаюсь запустить простую работу с quartz.net с последней версией (3.4), но она не запускается.
Global.asax
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using Quartz.Api.ScheduledTasks;
namespace Quartz.Api
{
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
Task.Run(async () => { await JobScheduler.Start(); });
}
}
}
Планировщик заданий
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Web;
using Quartz.Impl;
namespace Quartz.Api.ScheduledTasks
{
public class JobScheduler
{
public static async Task Start()
{
IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<TestJob>().Build();
ITrigger trigger = TriggerBuilder.Create()
.WithDailyTimeIntervalSchedule
(s =>
s.WithIntervalInSeconds(10)
.OnEveryDay()
.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 0))
)
.Build();
await scheduler.ScheduleJob(job, trigger);
}
}
}
Тестовое задание
using System.Threading.Tasks;
namespace Quartz.Api.ScheduledTasks
{
public class TestJob : IJob
{
public async Task Execute(IJobExecutionContext context)
{
await Task.Run(() =>
{
string[] lines = { "First line", "Second line", "Third line" };
System.IO.File.WriteAllLines(@"C:\Users\GOWDY_N\source\repos\Quartz\Quartz.Api\ScheduledTasks.txt",
lines);
});
}
}
}
Текстовый файл в моем коде работы никогда не записывается на диск.
Я подозреваю, что я не правильно использую задачи, потому что Application_Start () в моем global.asax - это метод void, но я использую шаблон async / await в стеке вызовов.
Кто-нибудь знает хороший способ настроить мою работу в global.asax в кварце 3.0 или выше?