Свертывание сообщений - PullRequest
       18

Свертывание сообщений

0 голосов
/ 05 марта 2019

Я пытаюсь определить, есть ли способ для служебной шины Azure обеспечить свертывание сообщений.В частности, я ищу что-то вроде:

  1. Первое событие в очереди сразу же принимается
  2. Все остальные события, которые стоят в очереди в течение следующих N секунд, и соответствуют некоторым критериям (например, совпадающие идентификаторы сообщений), установите очередь расписания в значение, чтобы они запускались в конце N секунд.Если «ожидающее» сообщение уже существует, оно должно быть удалено.
  3. После истечения N секунд появляется самое новое запланированное сообщение и принимается.

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

У кого-нибудь есть шаблон, который он использовал для получения чего-то близкого к этой семантике?

Обновление 1

Включенные сообщения не являются истинными дубликатами, скорее это текущее состояние объекта, который используется для некоторой обработки (например, сообщение, которое генерируется каждый раз, когда файлобновляется).Результат обработки раннего сообщения полностью заменяется результатом более поздних сообщений (например, результатом является размер файла).Таким образом, нам все еще нужно гарантировать, что мы обрабатываем самое последнее сообщение, но это пустая трата, чтобы обработать все M в течение N секунд.

1 Ответ

0 голосов
/ 05 марта 2019

Похоже, вы говорите о Duplicate Detection , особенно в отношении соответствия MessageIds.Если вы хотите оценить какой-либо другой атрибут в сообщении на предмет обнаружения дубликатов, возможно, стоит сделать шаг назад и спросить Почему мои издатели отправляют так много дублирующих сообщений? Если это неизбежно, возможно, вы можете отделить свой болтливыйпотребителей в отдельную группу потребителей и вручную обработайте дубликат проверки, затем повторно поставьте в очередь (просто мысли вслух).

...