From a7166e0b2d5bed1f8c8f48ef80e51b68b3fd0e23 Mon Sep 17 00:00:00 2001 From: Jan-Willem de Bruyn Date: Mon, 4 May 2026 10:41:33 +0200 Subject: [PATCH] feature: Add option to configure custom servicebus processor options --- .../Features/AzureServiceBusFeature.cs | 6 ++++++ .../Options/AzureServiceBusOptions.cs | 1 + .../Elsa.ServiceBus.AzureServiceBus/Services/Worker.cs | 5 ++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Features/AzureServiceBusFeature.cs b/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Features/AzureServiceBusFeature.cs index 266231d6..743a5068 100644 --- a/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Features/AzureServiceBusFeature.cs +++ b/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Features/AzureServiceBusFeature.cs @@ -36,6 +36,11 @@ public AzureServiceBusFeature(IModule module) : base(module) /// public Action AzureServiceBusOptions { get; set; } = _ => { }; + /// + /// A delegate to create a instance. + /// + public Func ProcessorOptionsFactory { get; set; } = _ => new ServiceBusProcessorOptions(); + /// /// A delegate to create a instance. /// @@ -68,6 +73,7 @@ public override void Apply() Services .AddSingleton(ServiceBusAdministrationClientFactory) .AddSingleton(ServiceBusClientFactory) + .AddSingleton(ProcessorOptionsFactory) .AddSingleton() .AddSingleton() .AddScoped(); diff --git a/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Options/AzureServiceBusOptions.cs b/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Options/AzureServiceBusOptions.cs index 2e62298b..c0531a6b 100644 --- a/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Options/AzureServiceBusOptions.cs +++ b/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Options/AzureServiceBusOptions.cs @@ -1,3 +1,4 @@ +using Azure.Messaging.ServiceBus; using Elsa.ServiceBus.AzureServiceBus.Models; namespace Elsa.ServiceBus.AzureServiceBus.Options; diff --git a/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Services/Worker.cs b/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Services/Worker.cs index 90fcc66b..f22c87c1 100644 --- a/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Services/Worker.cs +++ b/src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Services/Worker.cs @@ -20,15 +20,14 @@ public class Worker : IAsyncDisposable /// /// Initializes a new instance of the class. /// - public Worker(string queueOrTopic, string? subscription, ServiceBusClient client, IServiceScopeFactory serviceScopeFactory, ILogger logger) + public Worker(string queueOrTopic, string? subscription, ServiceBusClient client, ServiceBusProcessorOptions processorOptions, IServiceScopeFactory serviceScopeFactory, ILogger logger) { QueueOrTopic = queueOrTopic; Subscription = subscription == "" ? null : subscription; _serviceScopeFactory = serviceScopeFactory; _logger = logger; - var options = new ServiceBusProcessorOptions(); - var processor = string.IsNullOrEmpty(subscription) ? client.CreateProcessor(queueOrTopic, options) : client.CreateProcessor(queueOrTopic, subscription, options); + var processor = string.IsNullOrEmpty(subscription) ? client.CreateProcessor(queueOrTopic, processorOptions) : client.CreateProcessor(queueOrTopic, subscription, processorOptions); processor.ProcessMessageAsync += OnMessageReceivedAsync; processor.ProcessErrorAsync += OnErrorAsync;