【默认加入持久化机制,防止消息丢失,v0.0.3】对RabbitMQ.Client进行一下小小的包装,绝对实用方便...
RabbitMQ是一個老牌的非微軟的消息隊列組件,一般來說應(yīng)該能滿足中小型公司對消息隊列生產(chǎn)的需求,平時我們在.NET開發(fā)環(huán)境下運用它是可能會需要RabbitMQ.Client的SDK庫,此庫是官網(wǎng)提供,目前最新發(fā)布版本是v4.1.3。在我們對接項目時有時需要碰到對接上的注意,隨之而來感覺對官方提供的SDK客戶端還可以進行一次包裝開發(fā)。
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;//支持異步發(fā)布 await mqClient.Publisher.Publish(queueName, messageData);
?
//同樣Client對象可以復(fù)用訂閱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}");
如果需要異常事件記錄
//發(fā)布者注冊一個異常事件處理,此處的注冊異常事件,只有在發(fā)生異常情況下會觸發(fā)client.Publisher.RegisterExceptionHandler((message, exception) => { //處理消息 //處理異常 });
需要對日志記錄自定義化,只需要注冊你自己的日志記錄實現(xiàn)類
class MyLogger:RabbitMQ.Client.Wrap.Interface.ILog{public void Info(string message, Exception exception = null, params object[] args){//實現(xiàn)你的記錄日志代碼 }public void Warn(string message, Exception exception = null, params object[] args){//實現(xiàn)你的記錄日志代碼 }public void Error(string message, Exception exception = null, params object[] args){//實現(xiàn)你的記錄日志代碼 }public void Fatal(string message, Exception exception = null, params object[] args){//實現(xiàn)你的記錄日志代碼 }public void Debug(string message, Exception exception = null, params object[] args){//實現(xiàn)你的記錄日志代碼//此日志會在#if DEBUG下會運行 }public void Trace(string message, Exception exception = null, params object[] args){//實現(xiàn)你的記錄日志代碼//此日志會在#if TRACE下會運行 }}//把實現(xiàn)類注冊進去
Logger.RegisiterLogger(new MyLogger());好了,介紹到這里,大家如果有興趣可以去nuget上安裝運用,如果在使用當中有問題可以及時聯(lián)系我,我的QQ在右上角的介紹里
轉(zhuǎn)載于:https://www.cnblogs.com/rjf1979/p/6900033.html
總結(jié)
以上是生活随笔為你收集整理的【默认加入持久化机制,防止消息丢失,v0.0.3】对RabbitMQ.Client进行一下小小的包装,绝对实用方便...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel-工作周报(月报)【改良版】
- 下一篇: Visual studio内存泄露检查工