Пакетное задание на Windows server 2008

#.net #windows #cron

#.net #Windows #cron

Вопрос:

Мне нужно настроить пакетное задание, которое регулярно отслеживает таблицу SQL (скажем, каждую минуту) и проверяет, есть ли данные для обработки. Если есть, то он должен вызвать скрипт для обработки данных. Перед вызовом сценария обработки ему также необходимо проверить, выполнялся ли тот же процесс. Если в данный момент выполняется тот же процесс, то он останавливается, в противном случае просто обрабатывайте данные.

В среде LAMPP я бы просто создал PHP-скрипт для выполнения обработки, настроил задание cron для вызова скрипта и настроил выполнение задания cron каждую минуту.

Каков наилучший подход для выполнения этого в среде .NET? Спасибо.

Ответ №1:

Создайте консольное приложение, затем запланируйте его с помощью планировщика задач Windows.

В качестве альтернативы, создайте службу Windows, которая выполняется непрерывно, и либо используйте таймер для запуска обработчика с определенным интервалом, либо используйте SqlDependency для запуска вашего обработчика при каждом изменении таблицы.

Комментарии:

1. спасибо SLaks. Есть ли какие-либо плюсы и минусы между консольным приложением и службой Windows? какое из них будет автоматически запущено при перезагрузке окна?

2. Службы обычно запускаются при запуске. Консольные приложения таковыми не являются, но вы можете заставить их запускаться через определенные промежутки времени с помощью планировщика задач. Я рекомендую написать службу.

3. Спасибо… теперь рассмотрим руководство по созданию службы Windows.