2017-05-28 8 views
1

私は2つのタスクを持っています。 1回目は1時間に1回、2回目は毎日12:00に実行する必要があります。最初のタスクのトリガーは正常に動作しますが、2番目のタスクはターゲット時間の数分前に作成された場合のみ起動します。私は間違って何をしていますか?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)はあまりうまく書かれておらず、時には本当に変な動作をすることがあります。 2番目のトリガーは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

関連する問題