JMSTemplate receive (): немедленно вернуть, если пусто - PullRequest
0 голосов
/ 14 марта 2019

Я использую метод JMSTemplate.receive (String destName) для получения сообщений из очереди.Проблема, с которой я сталкиваюсь, заключается в том, что метод будет ждать бесконечно, когда очередь пуста.Для этого я добавил параметр тайм-аута, но этот тайм-аут добавит задержку, которая не является предпочтительной.

Q1.Что я могу сделать для получения, чтобы немедленно вернуться, если очередь пуста.

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

1 Ответ

1 голос
/ 14 марта 2019

A1. Используйте вызов API JMS receiveNoWait().

A2. Из моего понимания спецификации JMS время ожидания для клиента начинает получение сообщения. Это не общее время, необходимое для возврата receive(). Поэтому я не ожидаю, что у вас будут проблемы с тайм-аутом в 1 мс и получением «большого» сообщения. Тем не менее, реализации JMS могут отличаться, поэтому стоит проверить, просто чтобы быть уверенным.

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