Muszę wykonywać pracę codziennie o północy czasu pacyficznego. Używam MVC3 z biblioteką Quartz.NET.Jak rozpocząć pracę codziennie o tej samej godzinie w Quartz.net?
Oto mój kod:
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();
}
Ten kod czyni to zadanie uruchomić tylko raz w pierwszej północy (Pacific Time). Ustawiłem tam .WithSimpleSchedule(x => x.WithIntervalInHours(24).RepeatForever())
, ale nie działa - zadanie nie powtarza się codziennie.
Co mogę zrobić, aby działało codziennie?
Każda pomoc doceniona!
Użyłem CronTrigger - nie działa idealnie. Nie działa dokładnie wtedy, kiedy powinien, ale wystarczająco blisko. – Marta
CronTrigger wygląda na użyteczny –
W moim przypadku zmniejszenie odstępu czasu z 30 minut do 5 minut powoduje, że praca działa poprawnie. – dsm