Служба Windows або Планувальник завдань Windows?


10

Я планую створити утиліту, яка запитуватиме базу даних та зберігатиме деяку інформацію (на іншій таблиці в базі даних). Його багатопотокова утиліта і вимагає запускати кожні 5 або 10 хвилин / пізніше може бути тричі на день.

Я бачу два варіанти досягнення цього в програмуванні на C # / DotNet.

  • створення служби Windows з тимчасовим підходом всередині неї.
  • консольну програму і плануйте її за допомогою планувальника завдань Windows.

Кому з них ви віддаєте перевагу і чому?


3
Я думаю, що це питання краще підходить для SO
Naveen

1
Дійсно, це гарне запитання щодо розробки програмного забезпечення, і ви, швидше за все, отримаєте принаймні п’ять хороших відповідей за п’ять годин, як тільки запитаєте його на ТАК.
гострий зуб

1
Я проголосував за закриття, це насправді належить до SO
Jaco Pretorius

2
Це питання викликає суб'єктивне та / або розширене обговорення по суті будь-якого. Тут дуже багато теми і суб'єктивні та аргументативні.

2
Я не впевнений, я думаю, що останнє речення "Кому ви віддаєте перевагу і чому?" запустить там близьких ботів. Тут краще, оскільки актуальні відповіді можна отримати тут
TheLQ

Відповіді:


2

Коментарі моєї колеги з вчорашнього дня щодо цієї самої теми

"З цього приводу завжди буде різноманітна думка ... Моє правило буде, якщо вам потрібно щось, що працює кожні п'ять хвилин (і вам не байдуже, який час він працює або скільки часу займає біг) або щось таке, реагуйте на події, використовуйте сервіс. Якщо вам потрібно щось запускати в певний час кожного дня, і ви впевнені, що не буде перенапруги, скористайтеся Планувальником, який постачається в ОС. Якщо вам потрібен гібрид, будь-ласка, використовуйте обидва рішення для різних випадків або знайти щось з полиці. (Можливо, кварц. Net) "

Стаття Джона Галлоуя від 2005 року "// TODONT: Використовуйте службу Windows просто для запуску запланованого процесу" - це добре прочитане. Я пропоную також прочитати коментарі, оскільки обговорення триває і донині, а також є хороші контр-аргументи.

Особисто я погоджуюся з колегою по цьому. Тримайте це просто якомога довше. А якщо ви розгортаєтесь на сервер Win2008, ознайомтеся із планувальником завдань та всіма можливостями, які пропонує стандартний планувальник. Для мене вбивця мав розпочати заплановане завдання, коли трапляється подія.


4

Послуги або використовуються в адміністративних цілях, або пропонують послугу для декількох додатків.

Графіки використовуються для виконання завдання кілька разів, що не обов'язково вимагає додаткових дозволів.


3

Я чув аргументи щодо використання програми Windows Scheduler, але завжди вибирав написання мого додатка як сервісу. Спочатку я думав, що це буде кращим рішенням у кластерному середовищі, але це не зовсім так. Суть полягає в тому, що я не мав вагомих причин, крім того, що він "відчував" себе кращим дизайном.


0

чому б не спробувати Quartz.net,
я використовував це один раз, і я можу сказати, що це потужна основа для створення власного планувальника, і він надає попередньо побудовану службу, яка запустить заплановану роботу (зберігається в базі даних або просто у файлі XML ) http://quartznet.sourceforge.net/


2
-1 Це зовсім не відповідає на запитання і краще підходить як коментар.
Тамара Війсман

0

Якщо ви хочете, щоб користувач мав більше контролю, не будуючи його будувати, скористайтеся Планувальником завдань. Схоже, Google це робить із оновленням своїх додатків. Залежно від користувача, не важко впоратися із завданням. Вийміть користувача з циклу та створіть службу. Більшість людей ніколи їх не торкнеться.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.