【发布时间】:2017-12-01 01:15:08
【问题描述】:
我正在与 Quartz.net 合作,试图在周二至周六上午 8:30 触发事件。
我用下面的代码来定义触发时间
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
IJobDetail job = JobBuilder.Create<DailyAutomationProcess>().Build();
ITrigger trigger = TriggerBuilder.Create().WithCronSchedule("0 30 8 ? * TUE,WED,THU,FRI,SAT *").Build();
scheduler.ScheduleJob(job, trigger);
scheduler.Start();
“0 30 8 ? * TUE,WED,THU,FRI,SAT *”是从http://www.cronmaker.com/ 生成的。
但由于某种原因,在运行时,当我检查 ITrigger 触发器时,它显示错误的时间。 它显示“nextFireTime:12/01/2017 16:30:00 +00:00}”
时间似乎总是错的。
如果下一个发射时间是 16:30,那么发射日期应该是 11/30(今天),因为现在还不是 16:30。
我对此感到困惑,任何建议都可以提供帮助。
提前致谢。
编辑:请确认我的 Quartz.Net 是 2.6.1
编辑:以下是我的Application_Start
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
ScheduledTasks.DailyAutomationTrigger();
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
【问题讨论】:
-
您使用的是哪个版本的 Quartz?貌似是Quartz.NET 2.0.1的bug,不过2.1.0已经修复了,看看Quartz.net
标签: c# quartz-scheduler