我有一个async
方法,并计划每10分钟运行一次。但是,它只运行第一次。
application_start
protected void Application_Start()
{
...
JobScheduler.Start().GetAwaiter().GetResult();
}
Jobscheduler
public static class JobScheduler
{
public static async Task Start()
{
try
{
NameValueCollection props = new NameValueCollection
{
{ "quartz.serializer.type", "binary" }
};
StdSchedulerFactory factory = new StdSchedulerFactory(props);
IScheduler scheduler = await factory.GetScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<Service>()
.WithIdentity("job1", "group1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInMinutes(10)
.RepeatForever())
.Build();
await scheduler.ScheduleJob(job, trigger);
}
catch (SchedulerException se)
{
Console.WriteLine(se);
}
}
}
服务
public class Service : IJob
{
public async Task Execute(IJobExecutionContext context)
{
using (StreamWriter streamWriter = new StreamWriter(@"C:pacoteIDGLog.txt", true))
{
await streamWriter.WriteLineAsync(DateTime.Now.ToString());
}
}
}
我不知道我需要做什么才能连续运行
我的 spidey Senses 告诉我scheduler
正在脱落范围,您的Job
运行一次,因为它的StartNow
,所有内容都被清理了
尝试在最后调用方法await scheduler.Start();
。它应该起作用。