Подтвердить что ты не робот

"Вне диапазона" Обработка Techiniques для приложений asp.net

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

4b9b3361

Ответ 1

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

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

Ответ 2

Служба Windows

Ответ 3

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

Ответ 4

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

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

Ответ 9

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