ReadMessage.java 1.6 KB
package com.tianbo.analysis.rabbitmq;

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.tianbo.util.RabitMq.ConnectionUtil;
import com.tianbo.util.RabitMq.MqGetMsg;
import lombok.Data;

/**
 * @author mrz
 * 读取指定队列内容并保存到指定目录
 */
@Data
public class ReadMessage {

    public static String status = "not runing";

    private String queueName;

    private String exchangeName;

    private String routingKey;

    private  String mqIp;

    private  int mqPort;

    private  String mqVhost;

    private  String mqUsername;

    private  String mqPassword;


    public void getResponseFromMq(String dir){
        try {
            // 获取到连接以及mq通道
            Connection connection = ConnectionUtil.getConnection(mqIp,
                    mqPort,
                    mqVhost,
                    mqUsername,
                    mqPassword);
            // 从连接中创建通道
            Channel channel = connection.createChannel();
            String exchangeName = "amq.topic";
            String routingKey = "consumer.#";
            // 声明(创建)队列
            channel.exchangeDeclare(exchangeName, BuiltinExchangeType.TOPIC,true);
            channel.queueDeclare(queueName, true, false, false, null);
            channel.queueBind(queueName,exchangeName,routingKey);
            status = "runing";
            channel.basicConsume(queueName, true, new GetResponse(channel,dir));

        }catch (Exception e){
            status = "not runing";
            e.printStackTrace();
        }
    }
}