Я изучаю концепцию постановки в очередь для веб-приложений (т.е. помещение некоторых типов заданий в очередь для завершения отдельным работником, а не в цикле веб-запросов).
Я хотел бы знать, существуют ли для этого какие-либо хорошие решения, которые можно использовать в среде ASP.NET MVC.
Был ли у кого-нибудь (хороший или плохой) опыт?
Спасибо!
ОБНОВЛЕНИЕ:
Чтобы уточнить, я не говорю об очередях входящих запросов. Попробую проиллюстрировать, что я имею в виду ...
1) Стандартная ситуация:
- Запрос из браузера
- Серверная обработка начинается
- Начало долгой работы
- Долгая работа завершена
- Обработка сервера завершена
- Ответ возвращен в браузер
2) Что я ищу:
- Запрос из браузера
- Серверная обработка начинается
- Длинное задание помещено в очередь
- Обработка сервера завершена
- Ответ возвращен в браузер
И в другом процессе (возможно, после отправки ответа):
- Долгое задание взято из очереди
- Долгая работа начинается
- Долгая работа закончена
В первом случае пользователь долго ждал ответа сервера, во втором - быстро.
Конечно, есть определенные виды работ, которые подходят для этого, а некоторые нет.
ОБНОВЛЕНИЕ 2:
Клиенту не нужно сразу получать информацию о результатах долгой работы. Изменения просто отображались в приложении всякий раз, когда пользователь обновлял страницу (конечно, после того, как работа была завершена).
Подумайте о некоторых вещах, которые происходят при переполнении стека - они не обновляются сразу в каждой части приложения, но это происходит довольно быстро - я подозреваю, что некоторые из этих заданий ставятся в очередь.