Плюсы и минусы запуска Quartz.NET встроенного или как службы Windows - PullRequest
15 голосов
/ 20 мая 2010

Я хочу добавить кварцевое планирование в приложение ASP.NET.

Он будет использоваться для отправки электронных писем в очереди.

Каковы плюсы и минусы использования quartz.net в качестве службы Windows и встроенного.

Моя главная проблема заключается в том, как Quartz.NET во встроенном режиме обрабатывает переменное число рабочих процессов в IIS.

Ответы [ 2 ]

14 голосов
/ 22 мая 2010

Вот несколько вещей, которые вы можете рассмотреть, решая, следует ли вам запускать встроенный или нет:

  1. Если вы собираетесь создавать рабочие места ТОЛЬКО из хост-приложения, запустите встроенный. В противном случае запустить как службу.

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

  3. Если ваши задания - это долго выполняющиеся задания или задания, которые занимают много памяти, запускайте как службу.

  4. Если вам нужно запускать свои задания в кластерной среде для повышения производительности, масштабируемости или отказоустойчивости, запускайте как службу.

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

13 голосов
/ 21 мая 2010

Quartz.NET может быть создан для каждого отдельного приложения (конфигурация веб-фермы требует количества планировщиков). Вы можете безопасно запустить несколько планировщиков, если у вас есть резервные копии заданий в базе данных, а Quartz.NET настроен в кластерном режиме (и часы синхронизируются естественным образом).

Основная проблема связана с обработкой пула приложений до IIS 7.5. Без постоянных проверок ваш работник приложения может быть переработан, и ваш планировщик будет недоступен, пока кто-то не отправит веб-запрос на запуск пула приложений снова. В IIS 7.5 появилась новая функция, позволяющая постоянно поддерживать пулы приложений.

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

...