Использование службы Windows в качестве службы планирования - PullRequest
1 голос
/ 08 мая 2009

У меня есть вопрос от клиента, чтобы запускать некоторые скрипты базы данных ежедневно или раз в две недели, в зависимости от типа периода. Они определили «занятый» период и «тихий» период. Они используют общий хостинг для своих приложений и не могут добавлять задания SQL Server в свою базу данных.

Что я хочу сделать, это создать службу Windows, которая настраивается с помощью файла конфигурации, содержащего различные периоды и их интервалы. Эта служба проверяет текущее время и дату в сравнении с запланированными периодами в файле конфигурации и выполнит хранимую процедуру сервера sql, когда интервал совпадет

Мой вопрос: есть ли лучший способ сделать этот вид планирования без сервера SQL или вы знаете, существует ли уже существующее, более общее (бесплатное) решение?

[Изменить] Я не могу использовать планировщик задач Windows, так как период их тишины - зимой, а период занятости - летом. С планировщиком задач мне пришлось бы изменять запланированные задачи вручную два раза в год. Это то, что я и мой клиент хотим. [/ Edit]

Спасибо

Ответы [ 4 ]

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

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

1 голос
/ 09 мая 2009

Почему бы не использовать планировщик задач, а затем каждый раз, когда ваше приложение запускается, оно проверяет свой собственный график, чтобы определить, нужно ли ему что-то делать.

Таким образом, вы можете использовать планировщик задач для запуска приложения каждые 15 минут. Когда ваше приложение запускается, оно использует свой собственный файл конфигурации, чтобы определить, нужно ли ему что-то делать.

Вы также можете использовать это, чтобы заставить ваше приложение остановить любые запущенные в настоящее время версии вашего приложения, чтобы убить любые долго выполняющиеся задачи!

1 голос
/ 08 мая 2009

Вы можете использовать функцию «Запланированные задачи» Windows, чтобы запускать некоторые консольные приложения, когда это необходимо.

Если вы хотите создать собственное решение для планирования, то я рекомендую взглянуть на Quartz.NET , который предлагает такую ​​же гибкость, как планировщик задач Windows.

1 голос
/ 08 мая 2009

В проекте Castle есть один (как часть компонентов Castle), который может помочь вам в этом.

http://www.castleproject.org/

...