Я хочу добавить кварцевое планирование к приложению ASP.NET.
Это будет использоваться для отправки, стоял в очереди электронные письма.
Каковы за и против выполнения quartz.net как сервис окон по сравнению со встроенным.
Мое основное беспокойство - то, как Quartz.NET во встроенном режиме обрабатывает переменное количество рабочих процессов в IIS.
Вот некоторые вещи, которые вы можете учесть при принятии решения о том, следует ли вам запускать встроенные приложения или нет:
Если вы собираетесь создавать задания ТОЛЬКО из приложения хостинга, то запускайте встроенные. В противном случае запускайте как службу.
Если для ваших заданий могут потребоваться разрешения, отличные от разрешений, которые есть у веб-приложения, запустите как службу.
Если ваши задания - это длительные задания или задания, которые используют много памяти, запускайте как службу.
Если вам нужно выполнять задания в кластерной среде для повышения производительности, масштабируемости или отказоустойчивости, запускайте как службу.
Из приведенного выше вы можете сделать вывод, что я предпочитаю запускать его как службу. Это связано с тем, что если вы собираетесь пройти через настройку планировщика заданий, это означает, что у вас есть задания, которые необходимо запускать по расписанию, или длительные задания. Услуга обычно является лучшим выбором для этого вида работы.
Quartz.NET может быть создан для отдельных приложений (конфигурация веб-фермы требует количества планировщиков). Вы можете безопасно запускать несколько планировщиков, если у вас есть резервные копии ваших заданий в базе данных и у вас есть Quartz.NET, настроенный в кластерном режиме (и часы синхронизируются естественным образом).
Основная проблема связана с обработкой пула приложений до IIS 7.5. Без постоянных проверок ваш работник приложения может быть переработан, и ваш планировщик будет отключен, пока кто-то не отправит веб-запрос для повторного запуска пула приложений. В IIS 7.5 есть новая функция, позволяющая постоянно поддерживать работу пулов приложений.
В противном случае между двумя моделями не должно быть большой разницы.