Обработка "Out of Band" Techiniques для приложений asp.net - PullRequest
12 голосов
/ 04 сентября 2008

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

Ответы [ 9 ]

7 голосов
/ 04 сентября 2008

Несколько лет назад я видел, как Роб Ховард описал способ использования HttpModule для обработки задач в фоновом режиме. Это не так удобно, как использование Cache, но в определенных обстоятельствах может быть лучше.

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

4 голосов
/ 04 сентября 2008

Служба Windows

3 голосов
/ 04 сентября 2008

Возможно, вы захотите посмотреть, как DotNetNuke делает это. Я знаю, что это написано в VB.NET, но я модифицировал код в C #. Я просматривал источник и заметил, что у них есть функция в их области администратора для настройки запланированных задач. Эти задачи настраиваются через интерфейс администратора и сохраняются в базе данных. Когда сайт запускается через файл Global.asax, они либо создают другой поток для запуска этой службы, который затем выполняет запланированные задачи в назначенное время. Я не могу вспомнить точную логику, это было давно, но это определенно хороший ресурс о том, как другие люди делали внеполосные процессы для приложений Asp.Net. Эта техника все еще сохраняет логику в приложении Asp.Net, но, по моему мнению, она выходит за рамки допустимого.

1 голос
/ 23 июня 2009
1 голос
/ 04 сентября 2008

если это в основном задачи обработки данных и вы используете MSSQL, как насчет запланированных задач SSIS?

0 голосов
/ 06 сентября 2008

Если вам удобнее работать со страницами asp.net, вы можете написать небольшое приложение, чтобы справиться с вашей работой, а затем «проверить связь» с внешним сервисом, который контролирует ваш веб-сайт. Это сохранит приложение в живых.

0 голосов
/ 04 сентября 2008

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

Это может показаться грязным, но в реальном мире я считаю, что это дает большую гибкость, вы не выполняете много обработки в пространстве процессов ASP.net, и вы могли бы легко адаптировать этот стиль для обработки фермы для дешевого Linux серверы, на которых агент работает в Mono, когда вам требуется больше оперативной памяти / процессора / диска.

0 голосов
/ 04 сентября 2008

Проблема с запланированными задачами или заданиями cron заключается в том, что они не разделяют пространство памяти с веб-сервером. Вы можете настроить запланированное задание, которое запрашивает страницы с веб-сервера, но это может создать проблемы с долго выполняющимися заданиями. Было бы неплохо иметь некоторые потоки с низким приоритетом, работающие в реальном стеке приложений ASP.Net, для выполнения простых служебных задач, таких как очистка кешей, мониторинг ресурсов и просто для общего обслуживания.

0 голосов
/ 04 сентября 2008

Запланированные задания или задания cron.

...