2013-07-31 3 views
1
ITrigger cronTrigger = TriggerBuilder.Create() 
      .WithIdentity("trigger1", "group1") 
      .WithCronSchedule(0 0/1 * 1/1 * ? *) 
      .Build(); 

Этот код устанавливает время для запуска за час до того, как я хочу его, поэтому вместо того, чтобы работать в 1:40, он работает в 12:40. Могу ли я настроить часовой пояс для Itrigger для работы в Великобритании?Quartz.net устанавливает часовой пояс для ITrigger?

ответ

0

При создании триггера должна быть опция TimeZone. Что-то вроде этого:

.inTimeZone(TimeZone.CurrentTimeZone); 

Вышеупомянутый раздел занимает текущий часовой пояс сервера. Если это не сервер на базе Великобритании, это должно сработать.

TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time"); 

Вот ссылка: http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06

2
ITrigger trigger = TriggerBuilder.Create() 
.WithIdentity("trigger3", "group1") 
.WithCronSchedule(
    "Your CRON Expression comes here", 
    x => x.InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Your Time Zone Id comes here")) 
) 
.ForJob("GUID/any unique combination ID comes here ") 
.Build() 
0

Может быть немного чище:

ITrigger trigger = TriggerBuilder.Create() 
       .StartNow() 
       .WithCronSchedule("0 27 15 ? * MON-FRI *", x => x.InTimeZone(TimeZoneInfo.Utc)) 
       .Build();