Несколько точек для добавления к упомянутым выше
- Если вы используете CLIENT_ACK в качестве режима подтверждения и закрываете сеанс без подтверждения последнего сообщения, все ожидающие сообщения будут доставлены.
- Если вы используете асинхронную передачу сообщений и
RuntimeException
добавляется в метод onMessage()
, соответствующее сообщение будет доставлено повторно.
Все вышеперечисленное подвергается максимальным попыткам повторной доставки.После максимальной попытки повторной доставки сообщение перейдет в очередь недействительных сообщений (если вы настроили) или будет просто отброшено.
То, что вы запросили, представляет собой тип политики повторной доставки.Таким образом, в случае, если сообщение должно быть повторно доставлено, насколько большое значение (задержка) должно быть уделено его повторной доставке.Если setUseExponentialBackOff установлен для каждой повторной доставки, одна и та же задержка доставки сообщения будет экспоненциально увеличиваться.
Все свойства, доступные для политики повторной доставки,
Для получения полной информации смотрите здесь .