zoukankan      html  css  js  c++  java
  • RabbitMQ EasyNetq 用法

    EasyNETQ帮助类

    public class MQHelper
        {
            /// <summary>
            /// 发送消息
            /// </summary>
            public static void Publish(Message msg)
            {
                //// 创建消息bus
                IBus bus = BusBuilder.CreateMessageBus();
    
                try
                {
                    bus.Publish(msg, x => x.WithTopic(msg.MessageRouter));
                }
                catch (EasyNetQException ex)
                {
                    System.Console.WriteLine("发送消息:" + ex.Message);
                    //处理连接消息服务器异常 
                }
    
                bus.Dispose();//与数据库connection类似,使用后记得销毁bus对象
            }
    
            /// <summary>
            /// 接收消息
            /// </summary>
            /// <param name="msg"></param>
            public static void Subscribe(Message msg, IProcessMessage ipro)
            {
                //// 创建消息bus
                IBus bus = BusBuilder.CreateMessageBus();
    
                try
                {
                    bus.Subscribe<Message>(msg.MessageRouter, message => ipro.ProcessMsg(message), x => x.WithTopic(msg.MessageRouter));
    
                    System.Console.WriteLine("订阅消息成功");
                }
                catch (EasyNetQException ex)
                {
                    System.Console.WriteLine("订阅消息失败:" + ex.Message);
                }
    
                //与数据库connection类似,使用后记得销毁bus对象
            }
        }
    
     public class BusBuilder
        {
            public static IBus CreateMessageBus()
            {
                //消息服务器连接字符串
                var connectionString = ConfigurationManager.ConnectionStrings["RabbitMQ"];
                if (connectionString == null || connectionString.ConnectionString == string.Empty)
                {
                    throw new Exception("messageserver connection string is missing or empty");
                }
                return RabbitHutch.CreateBus(connectionString.ConnectionString);
            }
    
             
        }
    
        public interface IProcessMessage
        {
            void ProcessMsg(Message msg);
    
            void Notice();
        }
    
        public class Message
        {
            public string MessageID { get; set; }
    
            public string MessageTitle { get; set; }
    
            public string MessageBody { get; set; }
    
            public string MessageRouter { get; set; }
        }
    
  • 相关阅读:
    python 递归
    python 装饰器
    python函数作用域,嵌套函数,闭包
    排序算法总结
    经典排序算法学习笔记七——堆排序
    经典排序算法学习笔记六——归并排序
    经典排序算法学习笔记五——直接选择排序
    经典排序算法学习笔记四——希尔排序
    经典排序算法学习笔记三——插入排序
    经典排序算法学习笔记二——快速排序
  • 原文地址:https://www.cnblogs.com/l1pe1/p/7903727.html
Copyright © 2011-2022 走看看