EasyNETQ帮助类

  1. public class MQHelper
  2. {
  3. /// <summary>
  4. /// 发送消息
  5. /// </summary>
  6. public static void Publish(Message msg)
  7. {
  8. //// 创建消息bus
  9. IBus bus = BusBuilder.CreateMessageBus();
  10.  
  11. try
  12. {
  13. bus.Publish(msg, x => x.WithTopic(msg.MessageRouter));
  14. }
  15. catch (EasyNetQException ex)
  16. {
  17. System.Console.WriteLine("发送消息:" + ex.Message);
  18. //处理连接消息服务器异常
  19. }
  20.  
  21. bus.Dispose();//与数据库connection类似,使用后记得销毁bus对象
  22. }
  23.  
  24. /// <summary>
  25. /// 接收消息
  26. /// </summary>
  27. /// <param name="msg"></param>
  28. public static void Subscribe(Message msg, IProcessMessage ipro)
  29. {
  30. //// 创建消息bus
  31. IBus bus = BusBuilder.CreateMessageBus();
  32.  
  33. try
  34. {
  35. bus.Subscribe<Message>(msg.MessageRouter, message => ipro.ProcessMsg(message), x => x.WithTopic(msg.MessageRouter));
  36.  
  37. System.Console.WriteLine("订阅消息成功");
  38. }
  39. catch (EasyNetQException ex)
  40. {
  41. System.Console.WriteLine("订阅消息失败:" + ex.Message);
  42. }
  43.  
  44. //与数据库connection类似,使用后记得销毁bus对象
  45. }
  46. }
  1. public class BusBuilder
  2. {
  3. public static IBus CreateMessageBus()
  4. {
  5. //消息服务器连接字符串
  6. var connectionString = ConfigurationManager.ConnectionStrings["RabbitMQ"];
  7. if (connectionString == null || connectionString.ConnectionString == string.Empty)
  8. {
  9. throw new Exception("messageserver connection string is missing or empty");
  10. }
  11. return RabbitHutch.CreateBus(connectionString.ConnectionString);
  12. }
  13.  
  14. }
  1. public interface IProcessMessage
  2. {
  3. void ProcessMsg(Message msg);
  4.  
  5. void Notice();
  6. }
  1. public class Message
  2. {
  3. public string MessageID { get; set; }
  4.  
  5. public string MessageTitle { get; set; }
  6.  
  7. public string MessageBody { get; set; }
  8.  
  9. public string MessageRouter { get; set; }
  10. }

RabbitMQ EasyNetq 用法的更多相关文章

  1. RabbitMQ基本用法、消息分发模式、消息持久化、广播模式

    RabbitMQ基本用法 进程queue用于同一父进程创建的子进程间的通信 而RabbitMQ可以在不同父进程间通信(例如在word和QQ间通信) 示例代码 生产端(发送) import pika c ...

  2. rabbitmq (一)用法

    首先,主机一是window系统,虚拟机二 ubuntu, ubuntu部署了rabbitmq服务端.默认监听5672端口. 由于rabbitmq内部有严格的权限系统,使用之前必须配置好权限. 默认网页 ...

  3. Rabbitmq概念用法

    MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列 ...

  4. EasyNetQ操作RabbitMQ(高级消息队列)

    RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).写消息队列的时候用RabbitMQ比较好,但是写的时候需要自己封装下,自己的封装,就需要对RabbitM ...

  5. redis&rabbitMQ安装

    前言: 学习python已经有一段时间了,最近在学twisted(博客:twisted安装),redis,rabbitMQ感觉有点难度,所以还是写下博客整理下. 一.Redis的安装 redis是一种 ...

  6. 【框架学习与探究之消息队列--EasyNetQ(2)】

    声明 本文欢迎转载,系博主原创,本文原始链接地址:http://www.cnblogs.com/DjlNet/p/7654902.html 前言 此文章,是承接上篇:[框架学习与探究之消息队列--Ea ...

  7. 中小型研发团队架构实践六:如何用好消息队列RabbitMQ?

    一.写在前面 使用过分布式中间件的人都知道,程序员使用起来并不复杂,常用的客户端 API 就那么几个,比我们日常编写程序时用到的 API 要少得多.但是分布式中间件在中小研发团队中使用得并不多,为什么 ...

  8. window下安装RabbitMQ

    RabbitMQ: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消 ...

  9. rabbitmq的简单介绍一

    该博客的主要讲解了以下几种rabbitmq的用法1.实现简单的生产者发送消息给消费者2.实现序列持久化3.实现消息持久化4.实现消息公平分发5.实现广播6.实现组播7.实现细分组播 先来看下rabbi ...

随机推荐

  1. jdk1.8新特性应用之Iterable

    我们继续看lambda表达式的应用: public void urlExcuAspect(RpcController controller, Message request, RpcCallback ...

  2. 黄聪:免费C#反编译软件工具。Reflector已经out了,试试ILSpy吧

    转载自:http://www.cnblogs.com/JamesLi2015/archive/2011/09/08/2170519.html Reflector是.NET开发中必备的反编译工具.即使没 ...

  3. 浅谈浅克隆(shallow clone)和 深克隆(deep clone)

    区别就在于是否对对象中的引用变量所指向的对象进行拷贝. 1.浅克隆/浅复制/浅拷贝 浅拷贝是指在拷贝对象时,对于基本数据类型的变量会重新复制一份,而对于引用类型的变量只是对引用进行拷贝,没有对引用指向 ...

  4. DomHelper

    public class DomHelper { public static ArrayList<Person> queryXML(Context context) { ArrayList ...

  5. [转]java中byte转换int时为何与0xff进行与运算

    在剖析该问题前请看如下代码public static String bytes2HexString(byte[] b) {  String ret = "";  for (int ...

  6. 开启 3389 的 cmd 命令

    方法一: 测试环境 Windows 2003 server 查看开启的端口 没有开启 3389 端口 执行语句 wmic RDTOGGLE WHERE ServerName='%COMPUTERNAM ...

  7. Python2.x与Python3.x同时安装时,切换使用方法

    Windows环境下允许同时安装Python2.x与Python3.x 一.在命令提示符下使用python2.x或者python3.x可以使用如下方法: 1.找到python的安装目录 2.重命名应用 ...

  8. python开发_python中的list操作

    对python中list的操作,大家可以参考: Python list 操作 以下是我个人的笔记: ============================================ Add b ...

  9. 构造方法PK实例方法

    1.构造方法 (1)用于对象初始化,一个类中至少有一个构造方法 (2)不能显示调用,只能在创建对象时,使用new来调用 (3)构造方法不能有返回值 (4)构造方法名称必须与类名一样 2.实例方法 (1 ...

  10. C++虚函数表理解

    一,思维模式图 二,代码验证 class A { public: A(int x) { fProtected = x; } float GetFProtected() { return fProtec ...