毎日太平洋時間の真夜中に仕事を実行しなければなりません。私はQuartz.NETライブラリでMVC3を使用しています。Quartz.netで同じ時間に毎日ジョブを開始するには?
public static void ConfigureQuartzJobs()
{
ISchedulerFactory schedFact = new StdSchedulerFactory();
IScheduler sched = schedFact.GetScheduler();
DateTime dateInDestinationTimeZone = System.TimeZoneInfo
.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, System.TimeZoneInfo.Utc.Id, "Pacific Standard Time").Date;
IJobDetail job = JobBuilder.Create<TimeJob>()
.WithIdentity("job1", "group1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartAt(dateInDestinationTimeZone)
.WithSimpleSchedule(x => x.WithIntervalInHours(24).RepeatForever())
.Build();
sched.ScheduleJob(job, trigger);
sched.Start();
}
このコードは(太平洋標準時で)最初の真夜中に一度だけ実行し、この仕事を行います
は、ここに私のコードです。私はそこに置いた.WithSimpleSchedule(x => x.WithIntervalInHours(24).RepeatForever())
しかし、それは動作していない - ジョブは毎日繰り返されていません。
毎日動作させるにはどうすればよいですか?
ご迷惑をおかけして申し訳ありません。
私はCronTriggerを使用しました。完全には動作しません。それは正確には実行されませんが、十分に近い状態で実行されます。 – Marta
CronTrigger役に立つと思われる –
私の場合、時間間隔を30分から5分に短縮すると、ジョブが正しく機能します。 – dsm