xiaohanzi 5 лет назад
Родитель
Сommit
bbf8f3bad7
1 измененных файлов: 24 добавлений и 9 удалений
  1. +24
    -9
      mallinkMQConsumer/src/main/java/com/iformall/mq/impl/RabbitMqConsumer.java

+ 24
- 9
mallinkMQConsumer/src/main/java/com/iformall/mq/impl/RabbitMqConsumer.java Просмотреть файл

@@ -1,10 +1,12 @@
package com.iformall.mq.impl;

import com.iformall.mq.MqBaseConsumer;
import com.iformall.enums.EnumMsgMqTopic;
import com.iformall.mq.MQConfig;
import org.springframework.amqp.core.*;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;

@@ -13,29 +15,42 @@ import javax.annotation.PostConstruct;
@Component
@Profile(MQConfig.Impl.RABBIT_MQ)
public class RabbitMqConsumer extends MqBaseConsumer {
String queueName = "topic-1";
//String queueName = "topic-1";
String queuenames = "";

@Autowired
private AmqpAdmin amqpAdmin;

@PostConstruct
public void init() {
DirectExchange exchange = new DirectExchange(queueName);
Queue queue = new Queue(queueName);
Binding binding = BindingBuilder.bind(queue).to(exchange).withQueueName();
amqpAdmin.declareExchange(exchange);
amqpAdmin.declareQueue(queue);
amqpAdmin.declareBinding(binding);
for (EnumMsgMqTopic topic: EnumMsgMqTopic.values()) {
DirectExchange exchange = new DirectExchange(topic.getCode());
Queue queue = new Queue(topic.getCode());
Binding binding = BindingBuilder.bind(queue).to(exchange).withQueueName();
amqpAdmin.declareExchange(exchange);
amqpAdmin.declareQueue(queue);
amqpAdmin.declareBinding(binding);
queuenames = queuenames +","+topic.getCode();
}
if (queuenames.length()>0) {
queuenames = queuenames.substring(0, queuenames.length()-1);
}
}

@Autowired
private AmqpTemplate rabbitTemplate;

public void send(String msg) {
public void send(String queueName, String msg) {
rabbitTemplate.convertAndSend(queueName, msg);
}

@RabbitListener(queues = "topic-1")
@Bean
public Queue fmRabbitmaQueue(){
return new Queue(queuenames,true);
}
@RabbitListener(queues = "#{fmRabbitmaQueue.name}")
public void onMessage(String message) {
doMessage(message);
}


Загрузка…
Отмена
Сохранить