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