Как я могу эффективно настроить system.timer для запуска службы Windows ежеквартально (один раз в 12 недель)? - PullRequest
0 голосов
/ 03 марта 2011

Как мне запустить службу Windows один раз в 12 недель?Я реализовал это, используя таймеры, и я назначаю интервал таймера как (12 * 7 * 24 * 60 * 60 * 1000 миллисекунд).Есть ли проблема, если я использую таймер для такой продолжительности (12 * 7 * 24 * 60 * 60 * 1000 миллисекунд).

Если это вызывает проблему, предложите альтернативный способ запуска службы Windows один разкаждые 12 недель.

Ответы [ 3 ]

2 голосов
/ 03 марта 2011

Ну, да, это может вызвать проблемы.Int32.MaxValue - 2 147 483 647.

Не можете ли вы просто запланировать запуск своей службы один раз в 12 недель?Вы можете использовать

net start yourservice
net stop yourservice

(согласно комментарию Саджоши: я имел в виду, что вы можете запускать и останавливать службу с помощью планировщика задач)

1 голос
/ 03 марта 2011

Я думаю, что лучшим подходом будет сравнение дат.

  1. Создание службы Windows с таймером с интервалом в один час.
  2. В событии onstart службы хранится текущая дата.
  3. В событии timer_tick / elapsedПроверьте разницу между текущей датой и сохраненной датой, если она составляет 12 операций.Также обновите текущую дату.
1 голос
/ 03 марта 2011

Вы должны использовать планировщик задач Windows для такого рода вещей. Вы можете настроить его на запуск любого приложения (не службы Windows) с различными интервалами.

Кроме того, зачем запускать приложение на сервере, использующее память и циклы ЦП, когда оно требуется только раз в 12 недель!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...