Как сопоставить группируемые данные и отбросить другие после чтения данных из очереди? - PullRequest
0 голосов
/ 31 января 2020

Поскольку я работаю над реализацией очереди (RabbitMQ), у меня возникают проблемы с получением нужного сообщения из групповых данных, которые я получаю из очереди.

См. Сообщения, которые я получаю из очереди:

{"AppId":"App1", "ReceiptId":"RES 1", "NoteNo": 123, "Priority": 3}
{"AppId":"App1", "ReceiptId":"RES 1", "NoteNo": 124, "Priority": 1}
{"AppId":"App1", "ReceiptId":"RES 2", "NoteNo": 125, "Priority": 2}
{"AppId":"App1", "ReceiptId":"RES 1", "NoteNo": 126, "Priority": 4}

Теперь, что это такое и что я хочу -

  • Одно сообщение, которое я получаю из очереди по очереди в порядке FIFO.
  • Я хочу сначала сгруппировать данные по ReceiptId.
  • После группировки по ReceiptId я хочу получить данные с наивысшим Priority и хочу отбрасывать другие сообщения.
  • Это означает, что я хочу только читать и обрабатывать сообщение с наибольшим значением priority и хочу отбрасывать другие после группировки по ReceiptId.
...