ASP.NET и фоновый рабочий процесс - PullRequest
2 голосов
/ 24 декабря 2011

У меня есть веб-приложение, работающее в ASP.NET и использующее SignalR. Я поддерживаю связь в режиме реального времени между клиентами и сервером.

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

Что бы вы порекомендовали для связи между веб-приложением и рабочим?

Сценарий может быть следующим:

Запрос приходит от клиента -> я уведомляю работника -> работник выполняет свою работу -> перезванивает в веб-приложение -> уведомляет клиента.

или

Работник уведомляет -> веб-приложение, использует SignalR для уведомления -> клиенты

Могу ли я как-то делиться экземплярами?Можно ли запустить этого работника в том же домене приложения внутри IIS?Как я могу подойти к этому?

Спасибо!

Ответы [ 2 ]

1 голос
/ 24 декабря 2011

Можно использовать асинхронную WCF или веб-службу, размещенную на IIS, где запрос инициируется клиентом, а ответ обрабатывается в обратном вызове завершения запроса.

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

1 голос
/ 24 декабря 2011

Обычно я делаю связь между ASP.NET и другим процессом (в большинстве случаев это запланированное консольное приложение) через базу данных.

Т.е. приложение ASP.NET записывает некоторые задания в таблицу заданий иконсольное приложение (которое запускается каждые 10 минут или около того с помощью планировщика задач Windows) выбирает задания из таблицы базы данных и обрабатывает их.

...