zoukankan      html  css  js  c++  java
  • RabbitMQ接口封装

    1.引用

    <dependency>
    <groupId>com.rabbitmq</groupId>
    <artifactId>amqp-client</artifactId>
    </dependency>

    2.代码
    package cn.piesat.task.util;

    import com.rabbitmq.client.AMQP;
    import com.rabbitmq.client.Channel;
    import com.rabbitmq.client.Connection;
    import com.rabbitmq.client.ConnectionFactory;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Component;

    /**
    * rabbitMQ收发消息工具类
    */
    @Component
    public class RabbitMQUtil {
    private static Logger rabbitMQUtilLogger = LoggerFactory.getLogger(RabbitMQUtil.class);

    /**
    * 发送持久化消息到指定的队列中
    *
    * @param uri 服务器连接uri参数
    * @param queueName 队列名称
    * @param msg 消息体 json 格式
    * @return true: 发送成功, false: 发送失败
    */
    public static boolean sendMsg(String uri, String queueName, String msg) {
    boolean isSuccess = false;
    Connection connection = null;
    Channel channel = null;
    try {
    ConnectionFactory factory = new ConnectionFactory();
    factory.setUri(uri);
    connection = factory.newConnection();
    if (connection != null) {
    channel = connection.createChannel();
    if (channel != null) {
    AMQP.Queue.DeclareOk declareOk = channel.queueDeclare(queueName, true, false,
    false, null);
    if (declareOk != null) {
    // 构建消息属性
    int deliveryMode = 2; // 1:临时 2:持久化
    AMQP.BasicProperties basicProperties = new AMQP.BasicProperties(null, "text/json",
    null, deliveryMode,
    null, null,
    null, null,
    null, null,
    null, null,
    null, null);

    channel.basicPublish("", queueName, false, false, basicProperties, msg.getBytes());
    isSuccess = true;
    } else {
    rabbitMQUtilLogger.error("queue declare error");
    }
    } else {
    connection.close();
    rabbitMQUtilLogger.error("create channel error");
    }
    } else {
    rabbitMQUtilLogger.error("create connection error");
    }

    } catch (Exception e) {
    rabbitMQUtilLogger.error(e.toString());
    rabbitMQUtilLogger.error(e.getStackTrace().toString());
    isSuccess = false;
    } finally {
    try {
    if (channel != null) {
    channel.close();
    }

    if (connection != null) {
    connection.close();
    }
    } catch (Exception e) {
    rabbitMQUtilLogger.error("close connection error");
    rabbitMQUtilLogger.error(e.toString());
    rabbitMQUtilLogger.error(e.getStackTrace().toString());
    }

    return isSuccess;
    }
    }
    }
  • 相关阅读:
    2019CSUST集训队选拔赛题解(二)
    2019CSUST集训队选拔赛题解(一)
    Dilworth定理
    直线石子合并(区间DP)
    后缀自动机 个人学习笔记
    HDU_6709 CCPC网络赛H 优先队列 贪心
    2019省赛翻车记
    【挖坑】某场组队训练找到的想要挖一挖的东西
    暑假补题需要点的技能点
    QAQorz的训练记录
  • 原文地址:https://www.cnblogs.com/runnerjack/p/12502787.html
Copyright © 2011-2022 走看看