Я не вижу, почему то, что Ваш один разработчик изменяет что-либо по проблеме управления исходным кодом. Я следовал бы за той же системой (на самом деле, я делаю на своих сольных проектах). Я использую wush.net (svn и trac) в тех случаях. Это быстро для установки и не требует, чтобы Вы сами сделали или знали любые проблемы сервера. Я рекомендую использовать что-то вроде этого.
Чтобы ответить на ваши вопросы:
Могу ли я прослушать службу SQL Server Очереди брокера из приложений .NET работает на другом компьютере?
Да.
Если да, следует ли мне это делать?
Если нет, что вы порекомендуете?
Вы можете рассмотреть возможность использования SqlDependency
. Он использует Service Broker за кулисами, но не явно.
Вы можете зарегистрировать объект SqlDependency
с помощью запроса SELECT
или хранимой процедуры. Если другая команда изменяет данные, которые были возвращены из запроса, возникает событие. Вы можете зарегистрировать обработчик событий и запускать любой код, который вам нравится в это время. Или вы можете использовать SqlCacheDependency
, который просто удалит связанный объект из кэша при возникновении события.
Вы также можете использовать Service Broker напрямую. Однако в этом случае вам нужно будет отправлять и получать свои собственные сообщения, как в случае с MSMQ.
В средах с балансировкой нагрузки, SqlDependency
подходит для случаев, когда код должен запускаться на каждом веб-сервере (например, очистка кеша). Сообщения Service Broker лучше подходят для кода, чем их следует запускать только один раз - например, при отправке электронной почты.
Если это помогает, я подробно рассмотрю обе системы с примерами в моей книге ( Ultra-Fast ASP.NET ).
SSB (SQL Service Broker) имеет функцию под названием Активация , которая позволяет прикреплять хранимую процедуру к очереди. SQL Server будет запускать эту процедуру внутренне, когда в очереди есть сообщения, которые нужно обработать. Присоединенная к очереди процедура может быть процедурой CLR, позволяющей запускать модули бизнес-логики с управляемым кодом (C #, VB.Net и т. Д.).
Альтернативой внутренней активированной хранимой процедуре является наличие внешнего клиента, «прослушивающего» очередь с оператором WAITFOR (RECEIVE ...)
. Этот синтаксис является специальным для SSB и выполняет блокировку без объединения, пока не появятся сообщения для приема. Затем приложения используют полученные сообщения как обычный набор результатов T-SQL (например, SELECT).
Простая в использовании очередь библиотека для SQL Service Broker на основе rhino-queues