Потребитель JMS ActiveMQ, когда нужно подтвердить - PullRequest
1 голос
/ 13 июня 2019

У меня есть пользователь JMS, который выполняет следующие действия:

  1. Получение сообщения.
  2. Обработка сообщения.
  3. Подтверждение сообщения.

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

Использование режима Java, Spring JMS, ActiveMQ и CLIENT_ACKNOWLEDGE на сервере Windows.

1 Ответ

0 голосов
/ 13 июня 2019

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

Рассмотрим ситуацию, когда ваш клиент получает сообщение, обработка которого занимает 24 часа, но не удается (по какой-либо причине) на 23 час и не подтверждает сообщение. Неподтвержденное сообщение будет доставлено другому потребителю, где, по-видимому, будет повторяться вся работа, выполненная за 23 часа другим потребителем. Этот процесс может потенциально повторяться много раз, каждый раз, по существу тратя ресурсы на несколько дней.

...