Передача данных из SQL Server в веб-приложение с помощью SignalR

Мое веб-приложение ASP.NET MVC 4 отображает клиенту часто обновляемые данные. Данные поступают из внешнего источника (приложение, установленное на сервере) и обрабатываются SQL Server 2008 R2.

В настоящее время поток данных вполне традиционен: клиенты опрашиваются из ASP.NET, ASP.NET, в свою очередь, опрашивает из SQL Server.

Чтобы избежать опроса (и теперь, когда мне требуется взаимодействие в реальном времени между пользователями веб-приложения), я меняю подход к проталкиванию, используя signalRдля передачи данных клиентам. Это повышает удобство взаимодействия с пользователем, а также снижает нагрузку на опрос между клиентами и сервером ASP.NET.

Теперь проблема заключается в инвертировании потока между SSRV и ASP.NET: я хочу передать данные из SSRV в ASP.NETнаиболее эффективным способом.

SSRV выполняет дорогостоящие запросы для импорта некоторых внешних данных, и после обработки данных они также готовы к распространению через Интернет посредством широковещательной рассылки.

Мой текущий подход для бедняков: отправка запроса POST Http к веб-приложению (на локальном хосте) для отправки данных (я использую для этого функцию CLR).

Как только данные обработаны, я упаковываю их, готовые для HttpWebRequest, ставлю их в очередь в Service Broker, чтобы не влиять на другие действия, и готово.

Я списал SqlDependency, поскольку это заставит меня запрашивать данные — не большое преимущество (я бы поменял HTTP-запрос с локального хоста на запрос, выполняемый на SQL Server)

В конце в то же время я чувствую, что должен быть более аккуратный способ сделать это.

Есть предложения?

9
задан eddo 29 August 2012 в 15:48
поделиться