RabbitMQManager.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Host.Common;
  2. using RabbitMQ.Client;
  3. using System.Threading.Tasks;
  4. namespace Host.Managers
  5. {
  6. public class RabbitMQManager
  7. {
  8. public static readonly RabbitMQManager Instance;
  9. static RabbitMQManager()
  10. {
  11. Instance = new RabbitMQManager();
  12. }
  13. public IConnection Connection { get; private set; }
  14. /// <summary>
  15. /// 重启启动
  16. /// </summary>
  17. /// <param name="model"></param>
  18. /// <returns></returns>
  19. public async Task<bool> RestartAsync()
  20. {
  21. Stop();
  22. var entity = await FileConfig.GetRabbitSetAsync();
  23. //创建连接工厂
  24. var factory = new ConnectionFactory
  25. {
  26. UserName = entity.RabbitUserName,//用户名
  27. Password = entity.RabbitPassword,//密码
  28. HostName = entity.RabbitHost,//rabbitmq ip
  29. Port = entity.RabbitPort,
  30. };
  31. try
  32. {
  33. //创建连接
  34. Connection = factory.CreateConnection();
  35. }
  36. catch (System.Exception ex)
  37. {
  38. //log
  39. return false;
  40. }
  41. return true;
  42. }
  43. /// <summary>
  44. /// Stop
  45. /// </summary>
  46. /// <returns></returns>
  47. private void Stop()
  48. {
  49. if (Connection?.IsOpen ?? false)
  50. {
  51. Connection?.Close();
  52. Connection?.Dispose();
  53. }
  54. }
  55. }
  56. }