rabbitmq取消自动重连_RabbitMQ C#客户端自动重连

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingRabbitMQ.Client;usingRabbitMQ.Client.Exceptions;usingSystem.Threading;usingRabbitMQ.Client.Events;usingSystem.IO;namespaceMES_MonitoringService.Common

{public classRabbitMQClientHandler

{private static string defaultRabbitMQHostName = Common.ConfigFileHandler.GetAppConfig("RabbitMQServerHostName");private static string defaultRabbitMQPort = Common.ConfigFileHandler.GetAppConfig("RabbitMQServerPort");private static string defaultRabbitMQUserName = Common.ConfigFileHandler.GetAppConfig("RabbitMQUserName");private static string defaultRabbitMQPassword = Common.ConfigFileHandler.GetAppConfig("RabbitMQPassword");private static string defaultRabbitVirtualHost = Common.ConfigFileHandler.GetAppConfig("RabbitMQVirtualHost");//定义一个静态变量来保存类的实例

private staticRabbitMQClientHandler uniqueInstance;//定义一个标识确保线程同步

private static readonly object locker = new object();/*-------------------------------------------------------------------------------------*/

//ConnectionFactory

private static ConnectionFactory mc_ConnectionFactory = null;//Connection

private staticIConnection Connection;//发送频道及接收频道分开,避免互相影响,导致整个服务不可用//Send Channel

private staticIModel SendChannel;//Listen Channel

private staticIModel ListenChannel;//数据监控队列

private static string MC_SyncDataConsume = string.Empty;//

//private SyncDataHandler syncDataHandlerClass;

/*-------------------------------------------------------------------------------------*/

///

///定义私有构造函数,使外界不能创建该类实例///

publicRabbitMQClientHandler()

{

Reconnect();

}///

///定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点///

///

public staticRabbitMQClientHandler GetInstance()

{//当第一个线程运行到这里时,此时会对locker对象 "加锁",//当第二个线程运行该方法时,首先检测到locker对象为"加锁"状态,该线程就会挂起等待第一个线程解锁//lock语句运行完之后(即线程运行完之后)会对该对象"解锁"//双重锁定只需要一句判断就可以了

if (uniqueInstance == null)

{lock(locker)

{//如果类的实例不存在则创建,否则直接返回

if (uniqueInstance == null)

{

uniqueInstance= newRabbitMQClientHandler();

}

}

}returnuniqueInstance;

}static voidConnect()

{try{

Common.LogHandler.WriteLog("获取RabbitMQ服务器参数:" + defaultRabbitMQHostName 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值