Планирование сообщений / потребление в JMS на основе определенного времени

Мы используем IBM WebSphere MQ в качестве JMS-провайдера со Spring MDP (POJO, управляемый сообщениями).

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

Например, если я отправляю три сообщения в очередь M1, M2 и M3. Где я могу настроить свойство сообщения M2, скажем, в 3 часа ночи. И на стороне потребителя, потребитель может выбрать только это сообщение в 3 часа утра. Если время не определено, сообщения должны использоваться так, как это делает JMS Receiver.

2 ответа

Спецификация JMS 2.0 имеет определения Delivery Delay, С помощью этой функции производитель сообщений может указать, что сообщение не должно доставляться до истечения указанного времени interval, Сообщение будет доступно для доставки по истечении указанного времени. Но это может не помочь вам, так как вы хотите, чтобы сообщение использовалось в указанное время. Как правило, приложения для обмена сообщениями предназначены для приема сообщений, как только они становятся доступны поставщику сообщений.

Если вы хотите обрабатывать сообщения только в указанное время, вы можете создать еще одну очередь "queue_3am" и запланировать запуск программы чтения точно в 3 часа ночи.

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

Но вы должны использовать " таймфрейм получения сообщения", добавив две метки времени в качестве свойств сообщения, например, установите для окна значение 1 или 5 минут.

Получатель может использовать селектор сообщений: селектор - это условие, использующее свойства сообщения.

Посмотри на это

Другие вопросы по тегам