From 8f6aa54bafcb2b644081194c3c968ef795c76839 Mon Sep 17 00:00:00 2001 From: Neil South Date: Thu, 10 Nov 2022 11:07:25 +0000 Subject: [PATCH] fix rabbitmq healthcheck Signed-off-by: Neil South --- .../RabbitMQ/Factory/RabbitMqConnectionFactory.cs | 9 +++++---- src/Plugins/RabbitMQ/RabbitMQHealthCheck.cs | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Plugins/RabbitMQ/Factory/RabbitMqConnectionFactory.cs b/src/Plugins/RabbitMQ/Factory/RabbitMqConnectionFactory.cs index 9b9c2fe..92351bc 100644 --- a/src/Plugins/RabbitMQ/Factory/RabbitMqConnectionFactory.cs +++ b/src/Plugins/RabbitMQ/Factory/RabbitMqConnectionFactory.cs @@ -54,7 +54,7 @@ public IModel CreateChannel(string hostName, string username, string password, s var key = $"{hostName}{username}{HashPassword(password)}{virtualHost}"; var connection = _connections.AddOrUpdate(key, - x => CreatConnection(hostName, username, password, virtualHost, key, useSSL, portNumber), + x => CreateConnection(hostName, username, password, virtualHost, key, useSSL, portNumber), (updateKey, updateConnection) => { // If connection to RMQ is lost and: @@ -67,7 +67,7 @@ public IModel CreateChannel(string hostName, string username, string password, s } else { - return CreatConnection(hostName, username, password, virtualHost, key, useSSL, portNumber); + return CreateConnection(hostName, username, password, virtualHost, key, useSSL, portNumber); } }); @@ -101,7 +101,7 @@ private void OnException(CallbackExceptionEventArgs args, IConnection value, str } } - private Lazy CreatConnection(string hostName, string username, string password, string virtualHost, string key, string useSSL, string portNumber) + private Lazy CreateConnection(string hostName, string username, string password, string virtualHost, string key, string useSSL, string portNumber) { if (!bool.TryParse(useSSL, out var sslEnabled)) { @@ -129,6 +129,7 @@ private Lazy CreatConnection(string hostName, string username, stri Ssl = sslOptions, Port = port, RequestedHeartbeat = TimeSpan.FromSeconds(10), + AutomaticRecoveryEnabled = true })); return new Lazy(connectionFactory.Value.CreateConnection); @@ -139,7 +140,7 @@ private static object HashPassword(string password) Guard.Against.NullOrWhiteSpace(password); var sha256 = SHA256.Create(); var hash = sha256.ComputeHash(Encoding.UTF8.GetBytes(password)); - return hash.Select(x => x.ToString("x2", CultureInfo.InvariantCulture)); + return string.Join("", hash.Select(x => x.ToString("x2", CultureInfo.InvariantCulture))); } protected virtual void Dispose(bool disposing) diff --git a/src/Plugins/RabbitMQ/RabbitMQHealthCheck.cs b/src/Plugins/RabbitMQ/RabbitMQHealthCheck.cs index 196dffe..3e1288c 100644 --- a/src/Plugins/RabbitMQ/RabbitMQHealthCheck.cs +++ b/src/Plugins/RabbitMQ/RabbitMQHealthCheck.cs @@ -46,14 +46,14 @@ public RabbitMQHealthCheck( { try { - using var channel = _connectionFactory.CreateChannel( + var channel = _connectionFactory.CreateChannel( _options[ConfigurationKeys.EndPoint], _options[ConfigurationKeys.Username], _options[ConfigurationKeys.Password], _options[ConfigurationKeys.VirtualHost], _options.ContainsKey(ConfigurationKeys.UseSSL) ? _options[ConfigurationKeys.UseSSL] : string.Empty, _options.ContainsKey(ConfigurationKeys.Port) ? _options[ConfigurationKeys.Port] : string.Empty); - channel.Close(); + return await Task.FromResult(HealthCheckResult.Healthy()).ConfigureAwait(false); } catch (Exception ex)