Как установить устойчивость очереди / сообщения в 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());
    }
}

Администратор кролика объявит очередь при первом открытии соединения. Обратите внимание, что вы не можете изменить очередь с длительной на нет; сначала удалите его.

Другие вопросы по тегам