using Host.Common; using RabbitMQ.Client; using System.Threading.Tasks; namespace Host.Managers { public class RabbitMQManager { public static readonly RabbitMQManager Instance; static RabbitMQManager() { Instance = new RabbitMQManager(); } public IConnection Connection { get; private set; } /// /// 重启启动 /// /// /// public async Task RestartAsync() { Stop(); var entity = await FileConfig.GetRabbitSetAsync(); //创建连接工厂 var factory = new ConnectionFactory { UserName = entity.RabbitUserName,//用户名 Password = entity.RabbitPassword,//密码 HostName = entity.RabbitHost,//rabbitmq ip Port = entity.RabbitPort, }; try { //创建连接 Connection = factory.CreateConnection(); } catch (System.Exception ex) { //log return false; } return true; } /// /// Stop /// /// private void Stop() { if (Connection?.IsOpen ?? false) { Connection?.Close(); Connection?.Dispose(); } } } }