【默认加入持久化机制,防止消息丢失,v0.0.3】对RabbitMQ.Client进行一下小小的包装,绝对实用方便...
生活随笔
收集整理的這篇文章主要介紹了
【默认加入持久化机制,防止消息丢失,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
總結
以上是生活随笔為你收集整理的【默认加入持久化机制,防止消息丢失,v0.0.3】对RabbitMQ.Client进行一下小小的包装,绝对实用方便...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel-工作周报(月报)【改良版】
- 下一篇: 站立会议 2