From d348dc84466fdd4be369ab0172c36251a383f0c8 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 11 Feb 2025 16:24:25 +0800 Subject: [PATCH] Check if channel is closed --- .../Volo/Abp/RabbitMQ/ChannelPool.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ChannelPool.cs b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ChannelPool.cs index d795342c1d..85a11a0961 100644 --- a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ChannelPool.cs +++ b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ChannelPool.cs @@ -42,6 +42,17 @@ public class ChannelPool : IChannelPool, ISingletonDependency poolItem.Acquire(); + if (poolItem.Channel.IsClosed) + { + Channels.TryRemove(channelName, out _); + poolItem = Channels.GetOrAdd( + channelName, + _ => new ChannelPoolItem(CreateChannel(channelName, connectionName)) + ); + + poolItem.Acquire(); + } + return new ChannelAccessor( poolItem.Channel, channelName,