Просмотр исходного кода

Fix RabbitMQ connection was closed unexpectedly. (#863)

* Fix RabbitMQ connection was closed unexpectedly.

* Ensure that the RabbitMQ connection is unique.
master
Null 3 лет назад
committed by GitHub
Родитель
Сommit
a650299a2b
Не найден GPG ключ соответствующий данной подписи Идентификатор GPG ключа: 4AEE18F83AFDEB23
2 измененных файлов: 11 добавлений и 5 удалений
  1. +9
    -4
      src/DotNetCore.CAP.RabbitMQ/IConnectionChannelPool.Default.cs
  2. +2
    -1
      src/DotNetCore.CAP.RabbitMQ/RabbitMQConsumerClient.cs

+ 9
- 4
src/DotNetCore.CAP.RabbitMQ/IConnectionChannelPool.Default.cs Просмотреть файл

@@ -67,13 +67,17 @@ namespace DotNetCore.CAP.RabbitMQ

public IConnection GetConnection()
{
if (_connection != null && _connection.IsOpen)
lock (SLock)
{
if (_connection != null && _connection.IsOpen)
{
return _connection;
}

_connection?.Dispose();
_connection = _connectionActivator();
return _connection;
}

_connection = _connectionActivator();
return _connection;
}

public void Dispose()
@@ -84,6 +88,7 @@ namespace DotNetCore.CAP.RabbitMQ
{
context.Dispose();
}
_connection?.Dispose();
}

private static Func<IConnection> CreateConnection(RabbitMQOptions options)


+ 2
- 1
src/DotNetCore.CAP.RabbitMQ/RabbitMQConsumerClient.cs Просмотреть файл

@@ -92,7 +92,8 @@ namespace DotNetCore.CAP.RabbitMQ
public void Dispose()
{
_channel?.Dispose();
_connection?.Dispose();
//The connection should not be closed here, because the connection is still in use elsewhere.
//_connection?.Dispose();
}

public void Connect()


Загрузка…
Отмена
Сохранить