У меня есть EXE, который должен запускаться раз в минуту. Должен ли я сделать это в виде запланированного EXE или службы Windows? - PullRequest
2 голосов
/ 08 мая 2009

Я знаю, что это в значительной степени мнение, но мне интересно, есть ли у вас его мнение и каковы ваши причины.

Дубликат : Насколько надежен планировщик задач Windows для многократного выполнения кода планирования?

Ответы [ 4 ]

5 голосов
/ 08 мая 2009

У меня есть много подобных программ, и я запускаю их все как службу с планировщиком. Преимущество в том, что он может работать без входа в систему любого пользователя. Плюс я могу остановиться / начать удаленно.

0 голосов
/ 08 мая 2009

Если он может быть полезен автономно для нескольких пользователей, его, вероятно, лучше всего контролировать с помощью планировщика задач. Если у вас нет исходного кода, нет смысла писать обертку, которая в любом случае выполняет то, что делает планировщик задач. Единственный раз, когда у меня были только запланированные задачи, это сбой при нестабильной сети (убедитесь, что вы сняли флажок «только при питании от сети», если он будет работать на ноутбуке).

Однако, если вы можете перекомпилировать его, и он будет выглядеть как служба (надежная, нуждается в восстановлении после сбоя, будет широко развернута и т. Д.), Вам может потребоваться переработать ее как единое целое. Помимо повышения эффективности, вы могли бы затем сообщать о состоянии, разумно реагировать на запросы запуска / остановки и добавлять интеллектуальные временные характеристики.

0 голосов
/ 08 мая 2009

Вы будете использовать меньше ЦП, выполняющих его как службу, чем как запланированную службу (не то, чтобы это имело значение, вероятно) Но я бы пошел со службой.

0 голосов
/ 08 мая 2009

У меня был один похожий сценарий:

Это был устаревший EXE-файл, который нужно было запускать раз в минуту с явными учетными данными пользователя, его нужно было запускать только во время работы определенного приложения (после того, как пользователь вошел в систему), и его нужно было сделать «вчера».

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

Как правило, я бы предпочел использовать подход Service.

...