Я пытаюсь определить, есть ли способ для служебной шины Azure обеспечить свертывание сообщений.В частности, я ищу что-то вроде:
- Первое событие в очереди сразу же принимается
- Все остальные события, которые стоят в очереди в течение следующих N секунд, и соответствуют некоторым критериям (например, совпадающие идентификаторы сообщений), установите очередь расписания в значение, чтобы они запускались в конце N секунд.Если «ожидающее» сообщение уже существует, оно должно быть удалено.
- После истечения N секунд появляется самое новое запланированное сообщение и принимается.
В основном мне нужен способполучить хорошее время для первого события, но обеспечить защиту от чрезмерной обработки событий из болтливых источников.
У кого-нибудь есть шаблон, который он использовал для получения чего-то близкого к этой семантике?
Обновление 1
Включенные сообщения не являются истинными дубликатами, скорее это текущее состояние объекта, который используется для некоторой обработки (например, сообщение, которое генерируется каждый раз, когда файлобновляется).Результат обработки раннего сообщения полностью заменяется результатом более поздних сообщений (например, результатом является размер файла).Таким образом, нам все еще нужно гарантировать, что мы обрабатываем самое последнее сообщение, но это пустая трата, чтобы обработать все M в течение N секунд.