Browse Source

Refactor RabbitMq module

pull/395/head
Halil ibrahim Kalkan 8 years ago
parent
commit
c3ab1ba789
  1. 4
      framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/AbpRabbitMqOptions.cs
  2. 2
      framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ChannelPool.cs
  3. 19
      framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ConnectionPool.cs
  4. 12
      framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqConnections.cs

4
framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/AbpRabbitMqOptions.cs

@ -2,13 +2,13 @@
{
public class AbpRabbitMqOptions
{
public RabbitMqConnections Connections { get; }
public RabbitMqConnections ConnectionFactories { get; }
public QueueOptionsDictionary Queues { get; }
public AbpRabbitMqOptions()
{
Connections = new RabbitMqConnections();
ConnectionFactories = new RabbitMqConnections();
Queues = new QueueOptionsDictionary();
}
}

2
framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ChannelPool.cs

@ -90,7 +90,7 @@ namespace Volo.Abp.RabbitMQ
try
{
poolItem.WaitIfInUse(remainingWaitDuration);
poolItem.Channel.Dispose();
poolItem.Dispose();
}
catch
{ }

19
framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ConnectionPool.cs

@ -22,15 +22,16 @@ namespace Volo.Abp.RabbitMQ
public virtual IConnection Get(string connectionName = null)
{
connectionName = connectionName ?? RabbitMqConnections.DefaultConnectionName;
return Connections.GetOrAdd(connectionName, () =>
{
var connectionFactory = Options.Connections.GetOrDefault(connectionName)
?? Options.Connections.Default;
return connectionFactory.CreateConnection();
});
connectionName = connectionName
?? RabbitMqConnections.DefaultConnectionName;
return Connections.GetOrAdd(
connectionName,
() => Options
.ConnectionFactories
.GetOrDefault(connectionName)
.CreateConnection()
);
}
public void Dispose()

12
framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqConnections.cs

@ -13,7 +13,7 @@ namespace Volo.Abp.RabbitMQ
[NotNull]
public ConnectionFactory Default
{
get => this.GetOrDefault(DefaultConnectionName);
get => this[DefaultConnectionName];
set => this[DefaultConnectionName] = Check.NotNull(value, nameof(value));
}
@ -21,5 +21,15 @@ namespace Volo.Abp.RabbitMQ
{
Default = new ConnectionFactory();
}
public ConnectionFactory GetOrDefault(string connectionName)
{
if (TryGetValue(connectionName, out var connectionFactory))
{
return connectionFactory;
}
return Default;
}
}
}
Loading…
Cancel
Save