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 class AbpRabbitMqOptions
{ {
public RabbitMqConnections Connections { get; } public RabbitMqConnections ConnectionFactories { get; }
public QueueOptionsDictionary Queues { get; } public QueueOptionsDictionary Queues { get; }
public AbpRabbitMqOptions() public AbpRabbitMqOptions()
{ {
Connections = new RabbitMqConnections(); ConnectionFactories = new RabbitMqConnections();
Queues = new QueueOptionsDictionary(); Queues = new QueueOptionsDictionary();
} }
} }

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

@ -90,7 +90,7 @@ namespace Volo.Abp.RabbitMQ
try try
{ {
poolItem.WaitIfInUse(remainingWaitDuration); poolItem.WaitIfInUse(remainingWaitDuration);
poolItem.Channel.Dispose(); poolItem.Dispose();
} }
catch 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) public virtual IConnection Get(string connectionName = null)
{ {
connectionName = connectionName ?? RabbitMqConnections.DefaultConnectionName; connectionName = connectionName
?? RabbitMqConnections.DefaultConnectionName;
return Connections.GetOrAdd(connectionName, () =>
{ return Connections.GetOrAdd(
var connectionFactory = Options.Connections.GetOrDefault(connectionName) connectionName,
?? Options.Connections.Default; () => Options
.ConnectionFactories
return connectionFactory.CreateConnection(); .GetOrDefault(connectionName)
}); .CreateConnection()
);
} }
public void Dispose() public void Dispose()

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

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