Код: Выделить всё
Rejecting received message because of the listener container having been stopped in the meantime. У меня настроены следующие bean-компоненты:
Код: Выделить всё
@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(SQSConnectionFactory sqsConnectionFactory) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(sqsConnectionFactory);
factory.setDestinationResolver(new DynamicDestinationResolver());
factory.setErrorHandler(this::handleError);
factory.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
return factory;
}
@Bean
public JmsTemplate jmsTemplate(SQSConnectionFactory sqsConnectionFactory) {
return new JmsTemplate(sqsConnectionFactory);
}
@Bean
public AmazonSQS buildAmazonSqs() {
return AmazonSQSClientBuilder.standard().withRegion(region).build();
}
@Bean
public SQSConnectionFactory sqsConnectionFactory(AmazonSQS amazonSQS) {
return new SQSConnectionFactory(
new ProviderConfiguration().withNumberOfMessagesToPrefetch(1),
amazonSQS);
}
Причина, по которой я хочу использовать UNORDERED_ACKNOWLEDGMENT, заключается в том, что использование CLIENT_ACKNOWLEDGMENT будет подтверждать предыдущие сообщения, как описано здесь.
Придется ли мне по существу использовать @SqsListener вместо @JmsListener Spring? Если нет, то как я могу запретить Spring подтверждать сообщение без вызова подтверждения() для объекта получающего сообщения?
Подробнее здесь: https://stackoverflow.com/questions/785 ... spring-jms
Мобильная версия