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; }
        }
    
  • 相关阅读:
    JavaBean 与 EJB 的区别
    MFC选项卡的实现
    MFC的图片按钮
    windows 下使用 MinGW + msys 编译 ffmpeg
    在windows使用vs2008编译live555
    C89 和 C99 标准比较
    11.求二元查找树的镜像[MirrorOfBST]
    10.排序数组中和为给定值的两个数字[Find2NumbersWithGivenSum]
    9.链表中倒数第k个结点[FindReverseKthLinkedListNode]
    8.另类方法求1+2+...+n[AnotherMethodOfCalculateSumN]
  • 原文地址:https://www.cnblogs.com/l1pe1/p/7903727.html
Copyright © 2011-2022 走看看