2017-05-28 102 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