Как создать новую очередь с RabbitMQ с Jhipster? - PullRequest
0 голосов
/ 20 ноября 2018

Я создал новый микросервис jhipster.Я добавил модуль RabbitMQ.Это функционально.Тем не менее, я хотел создать очередь вручную, я пытался добавить ее в CloudMessagingConfiguration, но он не идет, ни один из этих методов.У вас есть идеи, как это сделать?

Кажется, это больше относится к конфигурации JHIPSTER, чем к RABBITMQ.Может быть, это связано с разницей между весенними облачными сообщениями и весенним amqp api?

Спасибо

@Configuration
@Profile(JHipsterConstants.SPRING_PROFILE_CLOUD)
@EnableRabbit
public class CloudMessagingConfiguration extends AbstractCloudConfig {

private final Logger log = LoggerFactory.getLogger(CloudMessagingConfiguration.class); 

@Bean
public ConnectionFactory rabbitFactory() {
    return connectionFactory().rabbitConnectionFactory();
}

   /**
   * Added thanks to the comment of Gary Russell
   * Required for executing adminstration functions against an AMQP Broker 
   */ 
   @Bean
   public AmqpAdmin amqpAdmin() {
     return new RabbitAdmin(rabbitFactory()); 
   } 

/**
 * This queue will be declared. This means it will be created if it does not exist. Once declared, you can do something
 * like the following:
 * 
 * @RabbitListener(queues = "#{@myDurableQueue}")
 * @Transactional
 * public void handleMyDurableQueueMessage(CustomDurableDto myMessage) {
 *    // Anything you wanenter code heret! This can also return a non-void which will queue it back in to the queue attached to @RabbitListener
 * }
 */
@Bean
public Queue myDurableQueue() {
    // This queue has the following properties:
    // name: my_durable
    // durable: true
    // exclusive: false
    // auto_delete: false
    return new Queue("my_durable", true, false, false);
}

/**
 * The following is a complete declaration of an exchange, a queue and a exchange-queue binding
 */
@Bean
public TopicExchange emailExchange() {
    return new TopicExchange("email", true, false);
}

@Bean
public Queue inboundEmailQueue() {
    return new Queue("email_inbound", true, false, false);
}

@Bean
public Binding inboundEmailExchangeBinding() {
    // Important part is the routing key -- this is just an example
    return BindingBuilder.bind(inboundEmailQueue()).to(emailExchange()).with("from.*");
}

}

1 Ответ

0 голосов
/ 20 ноября 2018

Вам необходимо добавить RabbitAdmin @Bean в конфигурацию, и он автоматически обнаружит и объявит обмен / очередь / привязку.

См. Документацию Spring AMQP .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...