ActiveMQ (NMS): есть ли способ выполнить запрос в очереди, чтобы узнать все сообщения с определенными значениями заголовка? - PullRequest
0 голосов
/ 18 декабря 2018

Я использую ActiveMQ для хранения сообщений, которые будут использоваться позже.Он работает, как и ожидалось, но есть конкретный сценарий, который мне нужен, который я не могу понять.Короткий вопрос:

Есть ли способ выполнить запрос в очереди, чтобы найти все сообщения с определенными значениями заголовка?

Проблемаподробно это выглядит так:

Таким образом, существует набор данных, который поступает в нескольких сообщениях, и требуется использовать эти данные только после того, как все сообщения для этого поступят. Так что если набор данных имеетскажем, 50 сообщений, мне нужно подождать эти 50 сообщений и затем прочитать их. Я добавляю заголовки к каждому сообщению, чтобы указать, что они принадлежат к определенному набору.Как "TotalSets" = 50, "SetId" = 39.Я хотел бы написать поток, который продолжает трассировку, если все наборы для определенной партии уже получены.

1 Ответ

0 голосов
/ 18 декабря 2018

NMS является .NET-эквивалентом API обмена сообщениями JMS, поэтому средства фильтрации сообщений те же, что и в JMS, ваша подписка при создании создает JMS Message Selector , чтобы сообщить брокеру, какие это сообщения.Заинтересованы. Методы сеанса для создания экземпляров MessageConsumer имеют варианты, которые принимают селектор, используя определенный синтаксис JMS, который является вашим средством фильтрации сообщений.

...