Parcourir la source

Fix RabbitMQ connection was closed unexpectedly. (#863)

* Fix RabbitMQ connection was closed unexpectedly.

* Ensure that the RabbitMQ connection is unique.
master
Null il y a 3 ans
committed by GitHub
Parent
révision
a650299a2b
Aucune clé connue n'a été trouvée dans la base pour cette signature ID de la clé GPG: 4AEE18F83AFDEB23
2 fichiers modifiés avec 11 ajouts et 5 suppressions
  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 Voir le fichier

@@ -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 Voir le fichier

@@ -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()


Chargement…
Annuler
Enregistrer