Лучший способ использовать очередь БД для выполнения http-вызовов и обновления статуса в БД - PullRequest
0 голосов
/ 28 февраля 2012

Я использую c # .net, база данных - MS SQL 2008 R2.

У меня есть вопрос, который, похоже, часто задавался здесь на форумах. Я хочу использовать таблицу базы данных в качестве очереди ... но обработка этих сообщений не может быть выполнена из базы данных.
У меня есть таблица, в которой хранятся запросы, которые я получаю от компонента .Net. Теперь я должен прочитать данные из этих таблиц и сделать http-вызовы 2 веб-сервисов. На основании ответа, полученного от веб-сервисов, данные архивируются или удаляются.
У меня было несколько конкретных вопросов:
1. Как мне убедиться, что если я выберу запись для обработки, и http-вызов не удастся, я смогу перейти к следующей записи, а затем вернуться к этой записи в конце выполнения
2. Есть ли альтернатива использованию базы данных в качестве очереди (например, MSMQ и т. Д.), Какой вариант лучше
3. Я хочу вести контрольный журнал статуса записи. Является ли создание триггера для регистрации изменений перед редактированием лучшим способом сделать это?

Привет
Leo

1 Ответ

0 голосов
/ 28 февраля 2012

Используйте Service Broker! Я пользуюсь им некоторое время и думаю, что это здорово, хотя нужно время, чтобы понять, как это работает. Использовал книгу , чтобы учиться. Сервисный Брокер решает:

  • Конкуренция
  • состояние приложения
  • ... много-много других
...