Есть ли особая причина для задержки обработки до тех пор, пока все не поступят?
Один метод, который я довольно успешно использовал в прошлом, - это удалить сообщение из очереди и сохранить соответствующие данные и порядковый номер из сообщения в локальном хранилище. Кроме того, по мере поступления каждого сообщения я увеличиваю количество полученных сообщений и общее количество сообщений, ожидаемых в хранилище. Наконец, все сообщения получены, и счетчик приращений равен ожидаемому количеству сообщений, я выполняю фактическую работу.
Таким образом, мы можем получать все сообщения, но только выполнять реальную работу в соответствии с вашими требованиями.