Обновить
15
4
Анатолий Сорокин@as94

Пользователь

Отправить сообщение

Спасибо, могу скинуть ссылку в лс

Все правильно поняли: если сообщение не дошло до брокера, то оно не удаляется из очереди. Обычно в фоне крутится джоба (для упрощения 1 инстанс, иначе их надо синхронизировать на уровне базы данных), которая переотправит такие сообщения. Код потребителей должен быть готов к дубликатам и быть идемпотентным. Помимо этого, вместе с сообщением всегда идет версия объекта. Если потребителю пришло что-то отличное от current version + 1, то он не принимает такие сообщения, возвращая их обратно в очередь. Так мы реализуем коммутативность потребителей.

Благодарю, отметил.
Спасибо, дополнил.
4 минус о том, что есть строчка _log.Trace("..."), которая сама по себе не является частью алгоритма, но в коде присутствует. Это немного захламляет код. Иногда лечится AOP.
Спасибо за мнение.

Информация

В рейтинге
1 116-й
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Фулстек разработчик
Старший
C#
ASP.NET
Английский язык