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; }
}
RabbitMQ EasyNetq 用法的更多相关文章
- RabbitMQ基本用法、消息分发模式、消息持久化、广播模式
RabbitMQ基本用法 进程queue用于同一父进程创建的子进程间的通信 而RabbitMQ可以在不同父进程间通信(例如在word和QQ间通信) 示例代码 生产端(发送) import pika c ...
- rabbitmq (一)用法
首先,主机一是window系统,虚拟机二 ubuntu, ubuntu部署了rabbitmq服务端.默认监听5672端口. 由于rabbitmq内部有严格的权限系统,使用之前必须配置好权限. 默认网页 ...
- Rabbitmq概念用法
MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列 ...
- EasyNetQ操作RabbitMQ(高级消息队列)
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).写消息队列的时候用RabbitMQ比较好,但是写的时候需要自己封装下,自己的封装,就需要对RabbitM ...
- redis&rabbitMQ安装
前言: 学习python已经有一段时间了,最近在学twisted(博客:twisted安装),redis,rabbitMQ感觉有点难度,所以还是写下博客整理下. 一.Redis的安装 redis是一种 ...
- 【框架学习与探究之消息队列--EasyNetQ(2)】
声明 本文欢迎转载,系博主原创,本文原始链接地址:http://www.cnblogs.com/DjlNet/p/7654902.html 前言 此文章,是承接上篇:[框架学习与探究之消息队列--Ea ...
- 中小型研发团队架构实践六:如何用好消息队列RabbitMQ?
一.写在前面 使用过分布式中间件的人都知道,程序员使用起来并不复杂,常用的客户端 API 就那么几个,比我们日常编写程序时用到的 API 要少得多.但是分布式中间件在中小研发团队中使用得并不多,为什么 ...
- window下安装RabbitMQ
RabbitMQ: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消 ...
- rabbitmq的简单介绍一
该博客的主要讲解了以下几种rabbitmq的用法1.实现简单的生产者发送消息给消费者2.实现序列持久化3.实现消息持久化4.实现消息公平分发5.实现广播6.实现组播7.实现细分组播 先来看下rabbi ...
随机推荐
- 1.Python3关于文件的操作
1.写了一个简单的Demo,就是向txt文本写入内容,最初代码如下: file = open("D:/Users/nancy/python.txt","wb") ...
- 老齐python-基础6(循环 if while for)
1.条件语句if 依据某个条件,满足这个条件后执行下面的内容 >>> if bool(conj): #语法 do something >>> a = 8 >& ...
- Asp.net中的web.config配置文件(转)
最近开始学习.NET的开发,首先碰到的就是web.config的配置问题,把网上大虾的资料转发记录一下,以备不时之需. 原贴路径如下:http://blog.csdn.net/hbqhdlc/arti ...
- laravel的model例子
5里面直接artisan建立model ./artisan make:model MyModel 找到MyModel,改成下面这样 <?php namespace App; use Illumi ...
- 关于硬件实现FFT逆运算
前面的文章我们介绍了关于FFT的硬件实现.关于FFT的逆运算IFFT,其实就是将实现FFT的过程反过来执行就可以了. 在实现过程中要注意很多问题. 同 FFT一样,效率问题.以2048点为例,根据理论 ...
- 页面初始加载的是默认刷新一次(f5)
参考找不到了,不好意思.. 两种可以都试一下,解决问题就好了. 1.----------- <script type="text/javascript"> window ...
- web 服务基础
用户通过网站访问浏览器都发生了什么 如图,用户请求www.joker.com发生 1. 用户访问网站流程框架2. dns解析原理3. tcp/ip三次握手过程原理4. http协议原理(www服务的请 ...
- jquery发送数组
假设keywordid_list是一个javascript数组,将它发送到keywordbatchsetting.php. $.ajax({ url:"keywordbatchsetting ...
- 后台给GridView绑定数据时给每一行添加一个JS方法
--------JS function ReturnDictionaryValues(srcElement) { top.document.getElementById("_DialogFr ...
- servlet对应.net中的http上下文
java中的servlet在.net中其实就是http上下文.