From b030933ff56cb9a1b4b6d76366fbfc45e7bf7d43 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 29 Nov 2023 15:59:38 +0800 Subject: [PATCH] Add more Arguments to AbpRabbitMqEventBusOptions --- .../Abp/EventBus/RabbitMq/AbpRabbitMqEventBusOptions.cs | 9 +++++++-- .../Abp/EventBus/RabbitMq/RabbitMqDistributedEventBus.cs | 6 ++++-- .../Volo/Abp/RabbitMQ/ExchangeDeclareConfiguration.cs | 5 +++-- .../Volo/Abp/RabbitMQ/QueueDeclareConfiguration.cs | 5 +++-- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/AbpRabbitMqEventBusOptions.cs b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/AbpRabbitMqEventBusOptions.cs index a017d53d5d..130f5b38e2 100644 --- a/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/AbpRabbitMqEventBusOptions.cs +++ b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/AbpRabbitMqEventBusOptions.cs @@ -1,4 +1,5 @@ -using Volo.Abp.RabbitMQ; +using System.Collections.Generic; +using Volo.Abp.RabbitMQ; namespace Volo.Abp.EventBus.RabbitMq; @@ -13,9 +14,13 @@ public class AbpRabbitMqEventBusOptions public string ExchangeName { get; set; } = default!; public string? ExchangeType { get; set; } - + public ushort? PrefetchCount { get; set; } + public IDictionary QueueArguments { get; set; } = new Dictionary(); + + public IDictionary ExchangeArguments { get; set; } = new Dictionary(); + public string GetExchangeTypeOrDefault() { return string.IsNullOrEmpty(ExchangeType) diff --git a/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/RabbitMqDistributedEventBus.cs b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/RabbitMqDistributedEventBus.cs index 2c0bb7aab5..dbaedf7779 100644 --- a/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/RabbitMqDistributedEventBus.cs +++ b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/RabbitMqDistributedEventBus.cs @@ -79,14 +79,16 @@ public class RabbitMqDistributedEventBus : DistributedEventBusBase, ISingletonDe new ExchangeDeclareConfiguration( AbpRabbitMqEventBusOptions.ExchangeName, type: AbpRabbitMqEventBusOptions.GetExchangeTypeOrDefault(), - durable: true + durable: true, + arguments: AbpRabbitMqEventBusOptions.ExchangeArguments ), new QueueDeclareConfiguration( AbpRabbitMqEventBusOptions.ClientName, durable: true, exclusive: false, autoDelete: false, - prefetchCount: AbpRabbitMqEventBusOptions.PrefetchCount + prefetchCount: AbpRabbitMqEventBusOptions.PrefetchCount, + arguments: AbpRabbitMqEventBusOptions.QueueArguments ), AbpRabbitMqEventBusOptions.ConnectionName ); diff --git a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ExchangeDeclareConfiguration.cs b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ExchangeDeclareConfiguration.cs index ca904cc94f..5c239893c7 100644 --- a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ExchangeDeclareConfiguration.cs +++ b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ExchangeDeclareConfiguration.cs @@ -18,12 +18,13 @@ public class ExchangeDeclareConfiguration string exchangeName, string type, bool durable = false, - bool autoDelete = false) + bool autoDelete = false, + IDictionary? arguments = null) { ExchangeName = exchangeName; Type = type; Durable = durable; AutoDelete = autoDelete; - Arguments = new Dictionary(); + Arguments = arguments?? new Dictionary(); } } diff --git a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/QueueDeclareConfiguration.cs b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/QueueDeclareConfiguration.cs index 4b03c788c6..eb59ec3058 100644 --- a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/QueueDeclareConfiguration.cs +++ b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/QueueDeclareConfiguration.cs @@ -23,13 +23,14 @@ public class QueueDeclareConfiguration bool durable = true, bool exclusive = false, bool autoDelete = false, - ushort? prefetchCount = null) + ushort? prefetchCount = null, + IDictionary? arguments = null) { QueueName = queueName; Durable = durable; Exclusive = exclusive; AutoDelete = autoDelete; - Arguments = new Dictionary(); + Arguments = arguments?? new Dictionary(); PrefetchCount = prefetchCount; }