2
我正在尝试使用Quartz.NET安排一些作业,但无法使其工作。我尝试了下面的代码,但是在满足指定的时间时没有发生任何事情。使用Quartz.NET调度Cron作业
public void Test()
{
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler = schedulerFactory.GetScheduler();
IJobDetail jobDetail = JobBuilder.Create<SatellitePaymentGenerationJob>()
.WithIdentity("TestJob")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.ForJob(jobDetail)
.WithCronSchedule("0 26 18 * * ?")
.WithIdentity("TestTrigger")
.StartNow()
.Build();
scheduler.ScheduleJob(jobDetail, trigger);
scheduler.Start();
}
UPDATE:
我也尝试了以下,以确保它不是导致该问题的cron表达式。没有为我工作,要么...
IJobDetail jobDetail = JobBuilder.Create<SatellitePaymentGenerationJob>()
.WithIdentity("TestJob", "TestGroup")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.ForJob(jobDetail)
.WithSimpleSchedule(x=> x.RepeatForever().WithIntervalInSeconds(10).WithMisfireHandlingInstructionFireNow())
.StartAt(new DateTimeOffset(DateTime.UtcNow.AddSeconds(10)))
.WithIdentity("TestTrigger", "TestGroup")
.Build();
scheduler.ScheduleJob(jobDetail, trigger);
scheduler.Start();
Console.WriteLine(DateTime.UtcNow.ToLongTimeString());
Console.WriteLine(trigger.GetNextFireTimeUtc());
注意trigger.GetNextFireTimeUtc()
返回一个有效的时间值,但工作永远不会被触发。
我哪里错了?
是的,这是意图。我已经将它设置为每天20:00(现在按照我的时区)运行,并且什么也没有发生。 “Execute”方法开始处的断点未被命中。有任何想法吗? – Kassem 2013-02-16 18:02:12
您是否在应用程序中调用了Test()方法? – 2013-02-16 19:28:57
当然。我在控制台应用程序的'Main'方法中调用它。我也尝试了一个基于间隔的触发器(正如你可以在更新的问题中看到的那样),但它也不起作用。 – Kassem 2013-02-16 19:42:48