2015-04-21 2 views
3

Есть ли способ, которым издатель может быть признан, что опубликованное сообщение было доставлено слушателю при использовании Spring AQMP? У меня есть ряд очередей, в которых я устанавливаю x-message-ttl = 0, что означает, что сообщения будут отброшены, если их нельзя будет немедленно доставить, но поскольку я использую это в сценарии запроса/ответа, я бы хотел, чтобы можно было отменить запрос и немедленно обработайте ошибку.Подтверждение при публикации с весной AMQP

ответ

2

Вы можете публиковать сообщение с mandatory flag.

Если этот флаг установлен, сервер вернет недопустимое сообщение с методом возврата. Если этот флаг равен нулю, сервер будет помещать в очередь сообщение , но не гарантирует, что он когда-либо будет использоваться.

И установите a return callback, который будет вызываться, если сообщение не поддается.

Другим решением должно быть использование alternate exchange, связанного с вашим обменом. Недостатки в том, что вам нужно привязать очередь к этому AE и использовать сообщения, чтобы узнать, не провалился запрос.

Смежные вопросы