【默认加入持久化机制,防止消息丢失,v0.0.3】对RabbitMQ.Client进行一下小小的包装,绝对实用方便...

  RabbitMQ是一个老牌的非微软的消息队列组件,一般来说应该能满足中小型公司对消息队列生产的需求,平时我们在.NET开发环境下运用它是可能会需要RabbitMQ.Client的SDK库,此库是官网提供,目前最新发布版本是v4.1.3。在我们对接项目时有时需要碰到对接上的注意,随之而来感觉对官方提供的SDK客户端还可以进行一次包装开发。

  Nuget安装命令:Install-Package RabbitMQ.Client.Wrap

  GitHub地址:https://github.com/rjf1979/RabbitMQ.Client.Wrap

  Nuget命令:Install-Package RabbitMQ.Client.Wrap

  以下就是对包装后的代码示例:  

string queueName = "queue-demo";
var client = Client.Build("admin", "123456", "VHostName", "192.168.xxx.xxx",5672);
client.Publisher.QueueDeclare(queueName);
string messageData = "test-" + DateTime.Now;
//支持异步发布
await mqClient.Publisher.Publish(queueName, messageData);

 

 
//同样Client对象可以复用订阅
var tag = client.Subscriber.Subscribe(queueName, message =>
  {
    Console.WriteLine($"Recevice Data > {message},Time > {DateTime.Now}");
    return true;
  });
Console.WriteLine($"Subscriber Tag > {tag} , Time > {DateTime.Now}");

如果需要异常事件记录

//发布者注册一个异常事件处理,此处的注册异常事件,只有在发生异常情况下会触发
client.Publisher.RegisterExceptionHandler((message, exception) => {   //处理消息  //处理异常 });

需要对日志记录自定义化,只需要注册你自己的日志记录实现类

    class MyLogger:RabbitMQ.Client.Wrap.Interface.ILog{public void Info(string message, Exception exception = null, params object[] args){//实现你的记录日志代码
        }public void Warn(string message, Exception exception = null, params object[] args){//实现你的记录日志代码
        }public void Error(string message, Exception exception = null, params object[] args){//实现你的记录日志代码
        }public void Fatal(string message, Exception exception = null, params object[] args){//实现你的记录日志代码
        }public void Debug(string message, Exception exception = null, params object[] args){//实现你的记录日志代码//此日志会在#if DEBUG下会运行
        }public void Trace(string message, Exception exception = null, params object[] args){//实现你的记录日志代码//此日志会在#if TRACE下会运行
        }}

//把实现类注册进去

Logger.RegisiterLogger(new MyLogger());

好了,介绍到这里,大家如果有兴趣可以去nuget上安装运用,如果在使用当中有问题可以及时联系我,我的QQ在右上角的介绍里

    

转载于:https://www.cnblogs.com/rjf1979/p/6900033.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

angularJS中,怎么阻止事件冒泡

今天有个童鞋问我,ng怎么阻止事件冒泡,我就简单的贴一下代码吧,也不是什么好高大上的问题 转载于:https://www.cnblogs.com/leoshuaige/p/6910646.html

用html编写输出今天是星期几,利用Date对象编写程序,判断并输出今天是开学的第几周,星期几。...

利用Date对象编写程序,判断并输出今天是开学的第几周,星期几。(function(){var startDay new Date(2014,8,1); //根据指定的年月日时分秒设置开学时间为2014/09/01var startMs startDay.getTime();//返回1970年至今的毫秒var startYear startD…

Java中 break continue return 的区别

1、break break :跳出当前循环&#xff1b;但是如果是嵌套循环&#xff0c;则只能跳出当前的这一层循环&#xff0c;只有逐层break才能跳出所有循环&#xff1b; for (int i 0; i < 10; i) { if (i 6) { break; // 在执行i6时强制终止循环&#xff0c;i6不会被执行 }Sy…

用计算机画好看的图形,如何画一手漂亮的电脑效果图?技巧案例赏析!

原标题&#xff1a;如何画一手漂亮的电脑效果图&#xff1f;技巧&案例赏析&#xff01;电脑效果图是什么&#xff1f;很显然&#xff0c;用电脑去绘制设计师的想法。当然&#xff01;所有的设计意图&#xff0c;最终都是为了更准确的成衣。那么&#xff0c;能精准的表达出想…

朝花夕拾——finally/final/finalize拨云雾见青天

Java编程中。常常会使用到异常处理&#xff0c;而finally看似的是try/catch后对逻辑处理的完好&#xff0c;事实上里面却存在非常多隐晦的陷阱。final常见于变量修饰&#xff0c;那么你在内部类中也见过吧。finalize作为GC回收对象前的一道门&#xff0c;什么时候运行。运行效果…

Java读源代码学设计模式:适配器Adapter

适配器模式相关源代码&#xff1a;slf4j-1.6.1、hibernate-3.6.7大家都知道。log4j是一个广泛使用的日志工具&#xff0c;除此之外。sun公司在JDK中也有自己的日志工具&#xff0c;也就是java.util.logging.Logger。当然还有其它一些日志工具。多种日志工具功能和使用方式相似&…

适合文科女孩子学的计算机类专业,文科女生最吃香的专业2021 哪些专业有前景...

文科女生最吃香的专业2021 哪些专业有前景2021-03-27 14:36:27文/丁雪竹文科女生可以报考的专业并不是很多&#xff0c;小编整理了文科女生吃香的专业&#xff0c;来看一下&#xff01;文科女生最吃香的专业网络与新媒体这个专业是近几年流行起来的新兴专业&#xff0c;需求量还…

系统搭建遇到问题3:Ubuntu问题造成网卡名称异常导致Vivado绑定网卡地址的Lic无法正常工作(JESD)...

解决方法参考&#xff1a; ubuntu平台vivado无法识别NIC_ID而无法使用license的解决办法 http://blog.csdn.net/cirs_q/article/details/60574030转载于:https://www.cnblogs.com/abolide/p/6920397.html

中职计算机基础知识总结,中职计算机基础知识整理

中职计算机基础知识整理计算机基础知识(初稿2011/10/5)1、计算机发展简史第一代(1946-1957年)电子管第二代(1958-1964年)晶体管第三代(1964-1970年)中、小规模集成电路第四代(1971年至今)大规模和超大规模集成电路2、我国计算机发展我国电子计算机研究工作起步于1956年1958年试…

多个html如何套用套一个头部,Vue.js项目中管理每个页面的头部标签的两种方法...

在 Vue SPA 应用中&#xff0c;如果想要修改 HTML 的头部标签&#xff0c;如页面的 title &#xff0c;我们只能去修改 index.html 模板文件&#xff0c;但是这个是全局的修改&#xff0c;如何为每个页面都设置不一样的 title 呢&#xff1f;下面介绍两种方法。使用router.Meta…

Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)

不多说&#xff0c;直接上干货&#xff01; 在这篇博客里&#xff0c;我采用了非官网的安装步骤&#xff0c;来进行安装。走了弯路&#xff0c;同时&#xff0c;也是不建议。因为在大数据领域和实际生产里&#xff0c;还是要走正规的为好。 Ubuntu16.04下Mongodb&#xff08;离…

甘肃政法学院计算机科学与技术试题,甘肃政法学院计算机科学与技术专业课程教学大纲.doc...

甘肃政法学院计算机科学与技术专业课程教学大纲甘肃政法学院计算机科学与技术专业课程教学大纲数字逻辑与分析一、说明(一)课程性质(三)教学内容1&#xff0e;了解数字电路和脉冲电路的概念。2&#xff0e;TTL门电路、CMOS两类集成门电路的外部特性&#xff1a;逻辑功能、电器特…

我确实不知道如何使用计算机的英文,用英语介绍我的电脑

篇一&#xff1a;电脑 ComputerComputer is a very useful machine. Some of them are big, but some of them are very small .Many people like playing computer. Computer has many functions, so that people can do a lot of things by computer, like watching movies, …

第二阶段个人工作总结04

昨天做了什么&#xff1f; 优化评论页面。 今天准备做什么&#xff1f; 对点赞修改。 遇到什么困难&#xff1f; 无。转载于:https://www.cnblogs.com/fylove/p/6979899.html

uva 11971 Polygon

https://vjudge.net/problem/UVA-11971 有一根长度为n的木条&#xff0c;随机选k个位置把它们切成k1段小木条。求这些小木条能组成一个多边形的概率。 将木条看做一个圆&#xff0c;线上切k刀等价于圆上切k1刀 如果能组成多边形&#xff0c;每一段木条的长度都要<圆周长/2 反…

计算机修改文字试题,计算机文字处理试题.doc

计算机文字处理试题文字处理单选题1、Word文档文件的扩展名是______。A&#xff1a;txtB&#xff1a;docC&#xff1a;batD&#xff1a;dat答案&#xff1a;B2、Word程序启动后就自动打开一个文档&#xff0c;其文档名为______。A&#xff1a;文档1B&#xff1a;文档0C&#xf…

Charles - 接口抓包分析工具

Charles是一个HTTP代理服务器&#xff0c;反转代理服务器&#xff0c;HTTP监视器。它允许一个开发者查看所有连接互联网的HTTP通信&#xff0c;包括request、 response现HTTP headers &#xff08;包含cookies与caching信息&#xff09;。 下载&#xff1a; http://www.charle…

计算机网络实用期末试题和答案,计算机网络期末考试试题及答案(1)

计算机网络期末考试试题及答案填空题(每空 1 分&#xff0c;共 30 分)1、在计算机网络的定义中&#xff0c;一个计算机网络包含多台具有__自治____功能的计算机&#xff1b;把众多计算机有机连接起来要遵循规定的约定和规则&#xff0c;即__通信协议_____&#xff1b;计算机网络…

微型计算机原理及接口技术林志贵,微型计算机原理及接口技术第七章部分习题答案林志贵主编...

《微型计算机原理及接口技术第七章部分习题答案林志贵主编》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《微型计算机原理及接口技术第七章部分习题答案林志贵主编(7页珍藏版)》请在人人文库网上搜索。1、7-1、I/O接口的信号有哪几种&#xff1f;各有什么特点&#…

表现与数据分离;前台MVC

无意间看到一个web前端招聘要求&#xff1a;表现与数据分离 这名词对我非常陌生&#xff0c;我就去百度了下 由于有各种莫名其妙的需求&#xff0c;所以才会出现我们前端MVC这样的莫名其妙的东西。。。我们的html就是model&#xff0c;我们的css就是view。我们的js就是controll…