Как установить устойчивость очереди / сообщения в false в Spring AMQP с помощью аннотаций?
Я написал пример Spring Amqp-производителя, который работает на сервере RabbitMQ, который отправляет сообщения и использует эти сообщения, используя MessageListener, используя Spring AMQP. Здесь я хочу установить для очереди и стойкости сообщения значение false. Не могли бы вы помочь мне, как установить "длительный" флаг в ложь, используя аннотации.
Вот пример кода
@Configuration
public class ProducerConfiguration {
protected final String queueName = "hello.queue";
@Bean
public RabbitTemplate rabbitTemplate() {
RabbitTemplate template = new RabbitTemplate(connectionFactory());
template.setRoutingKey(this.queueName);
template.setQueue(this.queueName);
return template;
}
@Bean
public ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory("localhost");
connectionFactory.setUsername("guest");
connectionFactory.setPassword("guest");
return connectionFactory;
}
}
public class Producer {
public static void main(String[] args) throws Exception {
new Producer().send();
}
public void send() {
ApplicationContext context = new AnnotationConfigApplicationContext(
ProducerConfiguration.class);
RabbitTemplate rabbitTemplate = context.getBean(RabbitTemplate.class);
for (int i = 1; i <= 10; i++) {
rabbitTemplate.convertAndSend(i);
}
}
}
Заранее спасибо.
1 ответ
@Configuration
public class Config {
@Bean
public ConnectionFactory connectionFactory() {
return new CachingConnectionFactory();
}
@Bean
public Queue foo() {
return new Queue("foo", false);
}
@Bean
public RabbitAdmin rabbitAdmin() {
return new RabbitAdmin(connectionFactory());
}
}
Администратор кролика объявит очередь при первом открытии соединения. Обратите внимание, что вы не можете изменить очередь с длительной на нет; сначала удалите его.