0
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);
春の再試行を使用している同じもののため
、ダウンのRabbitMQサーバ接続の場合には、管理春AMQPクライアント・メッセージ・弾力性のユースケースを持っています
しかし、それをテストしてブローカを落とすと、それはtemplate.convertAndSend()でハングアップし、RabbitMQブローカ接続が復元されても回復しません。
ラッセル、ソリューションはよさそうだ、しかし、ビューの弾力性の観点からのRabbitMQサービスは、たとえば、1時間のために使用できない場合(一般的にはそうではありませんが、まれにしか起こりません)、その設定はアプリケーションを過度に使用していますか? – Akshat
私が言っているのは、試行の間に1時間待つのは長すぎるということです。ほとんどの人は数秒ごとに、あるいはおそらく1分ごとに試行します。 –