0
私は今や繰り返しタスクのためにquartzを使用しています。何らかの理由で、私は2つの特定の日に実行するタスクを作成する必要がありました。ここで私が作った実装があります:StartAt()を使用してプールを起動したときにクォーツジョブが実行される
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.Start();
IJobDetail jobWeekEnd = JobBuilderExtend.Create<CreateConsultationReplayJob>(() => new StandardContextProvider());
ITrigger triggerWeekend = TriggerBuilder.Create()
.WithIdentity("Foo", "Bar")
.WithCronSchedule("0 0 9 ? * SAT-SUN")
.ForJob(jobWeekEnd)
.Build();
scheduler.ScheduleJob(jobWeekEnd, triggerWeekend); // WORKS WELL
var jobNonWorkingDay = JobBuilderExtend.Create<CreateConsultationReplayJob>(() => new StandardContextProvider());
var trigger1 = TriggerBuilder.Create()
.WithIdentity("Foo2", "Bar")
.StartAt(new DateTimeOffset(new DateTime(2017, 04, 17, 09, 00, 00)))
.ForJob(jobNonWorkingDay)
.Build();
scheduler.ScheduleJob(jobNonWorkingDay, trigger1);
var jobNonWorkingDay2 = JobBuilderExtend.Create<CreateConsultationReplayJob>(() => new StandardContextProvider());
var trigger2 = TriggerBuilder.Create()
.WithIdentity("Foo3", "Bar3")
.StartAt(new DateTimeOffset(new DateTime(2017, 05, 01, 09, 00, 00)))
.ForJob(jobNonWorkingDay2)
.Build();
scheduler.ScheduleJob(jobNonWorkingDay2, trigger2);
TRIGGER1とトリガ2は、正しい時刻にないトリガーするようですが、それぞれの時間は、私はプールをリサイクルし、ランダムに、最後の発生は午前11時16分15秒にありました。
私はどこを掘るべきかについての手掛かりはありますか?
Quartz.NETを使用しているようですが、質問を編集して適切なタグを設定しました。 – walen
更新のための@walenありがとう –
ジョブをスケジューリングした後でスケジューラを開始しようとします。 1)scheduler.ScheduleJob(...) 2)scheduler.Start(); – NikNik