我有一个在 RabbitMQ 服务器连接中断的情况下管理 Spring AMQP 客户端消息弹性的用例,
同样,我使用了 Spring Retry
RabbitTemplate template = // get template from some bean
RetryTemplate retryTemplate = new RetryTemplate();
ExponentialBackOffPolicy backOffPolicy = new ExponentialBackOffPolicy();
// 10 sec
backOffPolicy.setInitialInterval(10000);
// 1 hr
backOffPolicy.setMultiplier(360.0);
// 1 hr max interval
backOffPolicy.setMaxInterval(3600001);
retryTemplate.setBackOffPolicy(backOffPolicy);
template.setRetryTemplate(retryTemplate);
template.convertAndSend("Direct-Exchange",
"Test.Routing.Key", AMQPMessage);
但是,当尝试对其进行测试并将代理关闭时,它会挂在 template.convertAndSend() 并且即使在 RabbitMQ 代理连接恢复时也不会恢复