Можете Вы/должны Вы использовать Брокера SQL Server Service с приложениями.NET?

Я не вижу, почему то, что Ваш один разработчик изменяет что-либо по проблеме управления исходным кодом. Я следовал бы за той же системой (на самом деле, я делаю на своих сольных проектах). Я использую wush.net (svn и trac) в тех случаях. Это быстро для установки и не требует, чтобы Вы сами сделали или знали любые проблемы сервера. Я рекомендую использовать что-то вроде этого.

19
задан Remus Rusanu 21 September 2009 в 22:29
поделиться

3 ответа

Чтобы ответить на ваши вопросы:

Могу ли я прослушать службу SQL Server Очереди брокера из приложений .NET работает на другом компьютере?

Да.

Если да, следует ли мне это делать?

Если нет, что вы порекомендуете?

Вы можете рассмотреть возможность использования SqlDependency . Он использует Service Broker за кулисами, но не явно.

Вы можете зарегистрировать объект SqlDependency с помощью запроса SELECT или хранимой процедуры. Если другая команда изменяет данные, которые были возвращены из запроса, возникает событие. Вы можете зарегистрировать обработчик событий и запускать любой код, который вам нравится в это время. Или вы можете использовать SqlCacheDependency , который просто удалит связанный объект из кэша при возникновении события.

Вы также можете использовать Service Broker напрямую. Однако в этом случае вам нужно будет отправлять и получать свои собственные сообщения, как в случае с MSMQ.

В средах с балансировкой нагрузки, SqlDependency подходит для случаев, когда код должен запускаться на каждом веб-сервере (например, очистка кеша). Сообщения Service Broker лучше подходят для кода, чем их следует запускать только один раз - например, при отправке электронной почты.

Если это помогает, я подробно рассмотрю обе системы с примерами в моей книге ( Ultra-Fast ASP.NET ).

12
ответ дан 30 November 2019 в 03:59
поделиться

SSB (SQL Service Broker) имеет функцию под названием Активация , которая позволяет прикреплять хранимую процедуру к очереди. SQL Server будет запускать эту процедуру внутренне, когда в очереди есть сообщения, которые нужно обработать. Присоединенная к очереди процедура может быть процедурой CLR, позволяющей запускать модули бизнес-логики с управляемым кодом (C #, VB.Net и т. Д.).

Альтернативой внутренней активированной хранимой процедуре является наличие внешнего клиента, «прослушивающего» очередь с оператором WAITFOR (RECEIVE ...) . Этот синтаксис является специальным для SSB и выполняет блокировку без объединения, пока не появятся сообщения для приема. Затем приложения используют полученные сообщения как обычный набор результатов T-SQL (например, SELECT).

18
ответ дан 30 November 2019 в 03:59
поделиться

Простая в использовании очередь библиотека для SQL Service Broker на основе rhino-queues

http://github.com/CoreyKaylor/servicebroker-queues

2
ответ дан 30 November 2019 в 03:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: