Служба Windows против asp.net Событие Application_BeginRequest с потоками / таймерами - PullRequest
2 голосов
/ 20 ноября 2008

Каковы преимущества / недостатки выполнения заданий на основе времени с использованием:

  1. услуги windows

  2. Application_BeginRequest для запуска отдельных потоков / таймеров.

Одним из недостатков запуска заданий в контексте веб-приложения asp.net является то, что во время утилизации .net придется заново настраивать, другие?

Ответы [ 2 ]

1 голос
/ 19 июня 2009

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

Сайт ASP.NET может просто выгружаться и будет снова работать только после того, как кто-то начнет просмотр. Весь жизненный цикл ошибочен - он гораздо более «прерывистый», чем сервис.

Наконец, услуги не очень сложны для создания.

0 голосов
/ 10 июня 2009

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

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

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

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

Стоит отметить, что вам нужно встроить свое собственное планирование и обеспечить безопасность потоков в Windows Services. Альтернативой является создание консольного приложения и использование такого приложения, как FireDaemon для планирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...