У меня есть отдельный издатель и потребитель. Я начинаю издавать и публиковать сообщения. Теперь я начинаю потребитель, и проблема в том, что сообщения переходят из готовой очереди, чтобы разблокировать очередность, отмечая сообщения как повторно отправленные которые я хочу avoid.So то, что я хочу, это должно быть помечено как только если повторно доставлена я отправить извед, а не на потребителя перезагрузки или запускаRabbit mQ сообщения, перемещающиеся из готовой очереди в очередь Unack
Конфигурация:
@Bean
public org.springframework.amqp.rabbit.connection.Connection mqConnection() {
CloudFactory cloudFactory = new CloudFactory();
Cloud cloud = cloudFactory.getCloud();
return cloud.getServiceConnector("mqservicename", ConnectionFactory.class,
null).createConnection();
}
@Bean
public StatefulRetryOperationsInterceptor interceptor() {
return RetryInterceptorBuilder.stateful().retryOperations(retryTemplate()).recoverer(new RejectAndDontRequeueRecoverer())
.build();
}
@Bean
public SimpleMessageListenerContainer listenerContainer() {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setMessageListener(new MessageListenerAdapter());
container.setAdviceChain(new Advice[] {
interceptor()
});
return container;
}
@Bean
public RetryTemplate retryTemplate(){
Map map=new HashMap<Class<? extends Throwable>, Boolean>();
map.put(CustomException.class, true);
RetryTemplate retryTemplate=new RetryTemplate();
retryTemplate.setRetryPolicy(new SimpleRetryPolicy(3,map));
return retryTemplate;
}
Вы уверены, что принимаете сообщения? – cantSleepNow
Да, я был.Теперь с комментарием Гэриса я его отключил и попробовал с настройкой выше. Но он дает только 1 попытку, а не 3 – user