2017-05-28 146 views
1

我有两个任务。第一个应该每小时执行一次,第二个每天在12:00执行一次。第一个任务的触发器正常工作,但第二个任务的触发器只有在目标时间前几分钟创建时才会触发。我究竟做错了什么?Quartz.net触发器不会触发

第一的配置:

IJobDetail job = JobBuilder.Create<WatchJob>() 
    .WithIdentity("Job_1", "First") 
    .WithDescription("Job_1_First") 
    .UsingJobData("AppData", JsonConvert.SerializeObject("Job_1_First")) 
    .Build(); 

ITrigger trigger = TriggerBuilder.Create() 
    .WithIdentity("Trigger_1", "First") 
    .StartNow() 
    .WithSimpleSchedule(x => x 
    .WithIntervalInMinutes(1440) 
    .RepeatForever()) 
    .Build(); 

而第二个:

IJobDetail updateJob = JobBuilder.Create<UpdateJob>() 
     .WithIdentity("Job_1", "Second") 
     .WithDescription("Job_1_Second") 
     .UsingJobData("AppData", JsonConvert.SerializeObject("Job_1_Second")) 
     .Build(); 

    ITrigger updateTrigger = TriggerBuilder.Create() 
     .WithIdentity("Trigger_1", "Second") 
     .WithDailyTimeIntervalSchedule 
      (t => t 
       .WithIntervalInHours(24) 
       .OnEveryDay() 
       .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(12, 0)) 
      ) 
     .Build(); 

调度程序配置:

<quartz> 
    <add key="quartz.scheduler.instanceName" value="Test" /> 
    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" /> 
    <add key="quartz.threadPool.threadCount" value="1" /> 
    <add key="quartz.threadPool.threadPriority" value="2" /> 
    <add key="quartz.jobStore.misfireThreshold" value="60000" /> 
    <add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" /> 
</quartz> 
+0

你使用哪种版本石英?它是一个Asp.Net项目吗? – Rabban

+0

@Rabban,我在控制台应用程序中使用Quartz 2.4.1 – iPhosgen

回答

0

你的触发器定义似乎没有错。但是Quartz(2.x)在引擎盖下写得不是很好,有时可能会很奇怪。 你的第二个触发器是一个CronTrigger,可以用其他方式定义。

这个工作对我来说:

ITrigger updateTrigger = TriggerBuilder.Create() 
    .WithIdentity("Trigger_1", "Second") 
    .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(12, 0)) 
    // this line tells quartz to start the trigger immediately, you can remove it, if you don't want this behaviour 
    .StartAt(DateTime.Now.AddDays(-1)) 
    .Build(); 
+0

谢谢。这是真正的作品。 – iPhosgen