二.封装RabbitMQ

------------恢复内容开始------------

在项目中通用项目中建了专属RabbitMQ的文件夹,因为用的类较多,所以单独建立一个大类来存放使用到的所有模型 

 

 

    RabbitMQHelper类 主要包含三大部分:属性项,构造函数,操作方法

       1.属性   主要用于配置消息队列的参数:虚拟主机,交换机名称,队列名称

       

 

      2.构造函数 构造函数主要用于对配置项进行赋值以及服务器地址进行配置

      

    3,操作方法

      1.发送消息(默认使用Direct模式) 入参为通用:MessageModel类  返回通用ResultModel类

      

 

 

      2.接收消息 接收消息和处理消息封装在一起,所以入参就用委托指定处理方法,以及错误后的处理,在此简化为自动重试5次,达到指定次数后就调用委托action

     

 

       

    RabbitMQModel代码如下:
/// <summary>
    /// 消息队列使用的类
    /// </summary>
    public class RabbitMQModel
    {
        #region 返回数据--队列获取的数据
        public class ResultModel
        {
            /// <summary>
            /// 是否成功
            /// </summary>
            public bool Success { get; set; }
            /// <summary>
            /// 返回消息
            /// </summary>
            public string Message { get; set; }
        }

        public class ResultModel<T>
        {
            /// <summary>
            /// 是否成功
            /// </summary>
            public bool Success { get; set; }
            /// <summary>
            /// 返回消息
            /// </summary>
            public string Message { get; set; }
            /// <summary>
            /// 具体返回信息
            /// </summary>
            public T Content { get; set; }
        }
        #endregion

        #region 发送数据--放进队列的数据
        /// <summary>
        /// 放入队列的数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        public class MessageModel<T>
        {
            /// <summary>
            /// 数据类型
            /// 不同的type 对应不同的处理
            /// </summary>
            public int DataType { get; set; }
            /// <summary>
            /// 错误次数  达到最大次数后不再重试
            /// </summary>
            public int ErrorCount { get; set; } = 0;

            public T Content { get; set; }
            /// <summary>
            /// 创建时间
            /// </summary>
            public DateTime CreateTime { get { return DateTime.Now; } }
        }
        #endregion

    }

 

 

 

    封装类调用:

      发送消息:

      

      接收消息:

      

 

      

 

       

      

      

 

               

 

 

------------恢复内容结束------------

posted on 2022-01-17 15:43  zzzzZzzttt  阅读(507)  评论(0)    收藏  举报

导航