2016-04-07 5 views
0

Я использую Nservicebus 4.7.5 с шиной служебной шины в качестве транспорта. Моя конечная точка - это всего лишь подписчик событий, и она ничего не публикует. Моя конечная точка, когда она получает вызовы событий в лазурное хранилище и выполняет CRUD.Nservicebus - временно приостановить конечную точку

Теперь, когда хранилище данных azure storage временно отключено, конечная точка будет продолжать работать, и сообщения будут отправляться в очередь мертвых букв.

Я ищу способ остановить сообщения о конечных точках, когда есть временная проблема в моем хранилище, поэтому не позволяйте им переходить в мертвую букву.

ответ

0

Считаете ли вы, что ASB отменит старые сообщения, и у вас не будет никаких сообщений? По крайней мере, теперь у вас есть их в очереди ошибок. Это много лучше рассчитывать на редкое исключение и иметь способ обратиться к нему, когда это произойдет, вместо создания обходного пути.

Представьте, что у меня есть перебой в электроснабжении в моем офисе, и это происходит как раз в шесть месяцев. Из-за этого я не стал бы строить дизельный генератор. Вместо этого я разработал бы какой-то план, как обрабатывать эти отключения, используя то, что у меня уже есть.

Что вы можете сделать, если хотите полностью прекратить обработку, - это реализовать circuit breaker. NServiceBus использует его, когда транспорт идет вниз. Если хранилище blob является одинаково важным компонентом для вашего сервиса, вы также можете его использовать. Он прекратит обслуживание полностью после некоторых попыток (если вы не разработаете собственную версию).

+0

Чтобы добавить к тому, что сказал @Alexey, вы также можете настроить свою SLR для расширения. Если SLR установлен на 30 минут и 3 попытки, у вас будут повторные попытки после 30, 60, 90 минут. Это также может помочь в сценарии сбоев. –

Смежные вопросы