From e354496e3576993320e4bd096ed89afbc2088428 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 13 May 2021 11:36:15 +0800 Subject: [PATCH] Update ConnectionPool.cs --- .../Volo/Abp/RabbitMQ/ConnectionPool.cs | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ConnectionPool.cs b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ConnectionPool.cs index 58ae4e2968..a7dca73646 100644 --- a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ConnectionPool.cs +++ b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ConnectionPool.cs @@ -25,23 +25,26 @@ namespace Volo.Abp.RabbitMQ { connectionName ??= RabbitMqConnections.DefaultConnectionName; - var lazyConnection = Connections.GetOrAdd( - connectionName, () => new Lazy(() => - { - var connection = Options.Connections.GetOrDefault(connectionName); - var hostnames = connection.HostName.TrimEnd(';').Split(';'); - // Handle Rabbit MQ Cluster. - return hostnames.Length == 1 ? connection.CreateConnection() : connection.CreateConnection(hostnames); + try + { + var lazyConnection = Connections.GetOrAdd( + connectionName, () => new Lazy(() => + { + var connection = Options.Connections.GetOrDefault(connectionName); + var hostnames = connection.HostName.TrimEnd(';').Split(';'); + // Handle Rabbit MQ Cluster. + return hostnames.Length == 1 ? connection.CreateConnection() : connection.CreateConnection(hostnames); - }) - ); + }) + ); - if (!lazyConnection.IsValueCreated) + return lazyConnection.Value; + } + catch (Exception) { Connections.TryRemove(connectionName, out _); + throw; } - - return lazyConnection.Value; } public void Dispose()