Настройте очередь JMS (ActiveMQ), чтобы она содержала только последнее сообщение.

У нас есть кварцевый процесс, который опрашивает очередь ActiveMQ JMS.

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

Нам не нужно обрабатывать какие-либо из предыдущих сообщений.

Есть ли способ настроить очередь для такого поведения?

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

Или в наших предположениях есть концептуальная ошибка...

Спасибо


person user209024    schedule 12.01.2011    source источник
comment
Это не совсем вариант использования JMS. Похоже, вам нужна база данных...   -  person skaffman    schedule 12.01.2011
comment
В WebSphere MQ это было бы проще простого. Публикуйте сохраненные публикации как постоянные сообщения. В топике всегда самая последняя и она жестко закреплена на диске в двух местах. Есть ли в Active MQ что-то похожее на сохраненные пабы WMQ? Если нет, есть ли в вашем магазине WMQ, который вы могли бы использовать?   -  person T.Rob    schedule 13.01.2011


Ответы (2)


На мой взгляд, для этого нет стандартной операции, поэтому вам придется написать код....

Одним из возможных решений может быть использование QueueBrowser вместе с QueueReceiver:

С помощью QueueReceiver вы получите перечисление сообщений в очереди. Для каждого сообщения теперь можно выполнить получение с помощью MessageSelector для JMSMessageID, если функция hasMoreElements() возвращает значение true. Последнее сообщение будет тем, которое вы хотите получить....

person roundrobin    schedule 13.01.2011

При использовании activemq вы можете использовать «кеширование изображений» в темах. Одна из настроек — всегда сохранять последнее отправленное сообщение.

Взгляните на настройки Политики восстановления подписки:

http://activemq.apache.org/subscription-recovery-policy.html

person Noctris    schedule 22.03.2011