2012-01-10 2 views
1

У нас есть установка триггера Quartz.NET хрон, который должен выполнить задание, используя следующий график:Quartz.NET и декретное выпуск

В 02: 00hrs в часовом поясе торговцев ежедневно

Однако, когда происходит переход на летнее время (DST), происходит следующее:

  • Когда часовой пояс торговцев перемещается с +2 GMT до +3 GMT, задание не выполняется.
  • Когда часовой пояс торговцев перемещается с +3 GMT до +2 GMT, задание выполняется дважды.

Мы уже знаем, что это поведение по дизайну (http://www.quartz-scheduler.net/faq.html#daylight), но что люди используют в качестве решения этой проблемы с DST?

Приветствия

Билли Stack

ответ

1

Эта ссылка указывает на, возможно, были обновлены в течение трех лет или около того (!), Так как вы задали этот вопрос. Похоже, что работа не должна выполняться дважды.

Я не уверен, что официальное «02:00» происходит в США, когда начинается переход на летнее время, поэтому проблему с пропуском выполнения задания в 02:00 можно решить, установив ее в 01:59:59 (cron триггер «59 59 1? *»), если вы были в Северной Америке. Другие страны могут измениться в другое время. В Европе, например, изменение происходит в 01:00, поэтому было бы лучше установить триггер на 02:00:01

1

Только что испытал ту же проблему, хотя в моем случае триггер не был планируется запустить между 0:00 и DST (2:00 в США). Вместо этого у меня была работа, в которой работает MON-FRI в 8 часов утра, поэтому она выполнялась дважды в понедельник, 5 ноября, в следующий день после ДНР.

Если вы читаете статью FAQ, связанную с вопросом, это имеет смысл. Триггер Cron просыпается, запускает работу, затем вычисляет следующий раз, чтобы проснуться. Когда он проснулся в пятницу в 8 утра, он рассчитывал в следующий раз, чтобы работать в понедельник в 8 утра. Однако к утру понедельника то, что раньше было 8 утра, стало 7 утра, поэтому в это время срабатывал триггер. И затем, когда он запустился, следующий раз был «правильно» рассчитан как 8 утра, поэтому он снова побежал в то время.

Надеюсь, это поможет кому-то изо всех сил пытаться понять проблему.

Смежные вопросы