diff --git a/src/modules/Elsa.MassTransit.AzureServiceBus/Features/AzureServiceBusFeature.cs b/src/modules/Elsa.MassTransit.AzureServiceBus/Features/AzureServiceBusFeature.cs index 31fea4245..7cf0855e8 100644 --- a/src/modules/Elsa.MassTransit.AzureServiceBus/Features/AzureServiceBusFeature.cs +++ b/src/modules/Elsa.MassTransit.AzureServiceBus/Features/AzureServiceBusFeature.cs @@ -60,10 +60,9 @@ public class AzureServiceBusFeature : FeatureBase var temporaryConsumers = consumers .Where(c => c.IsTemporary) .ToList(); - + RegisterConsumers(consumers); configure.AddServiceBusMessageScheduler(); - configure.AddConsumers(temporaryConsumers.Select(c => c.ConsumerType).ToArray()); configure.UsingAzureServiceBus((context, configurator) => { @@ -79,11 +78,12 @@ public class AzureServiceBusFeature : FeatureBase foreach (var consumer in temporaryConsumers) { - configurator.ReceiveEndpoint($"Elsa-{instanceNameProvider.GetName()}-{consumer.Name}", configurator => + configure.AddConsumer(consumer.ConsumerType).ExcludeFromConfigureEndpoints(); + configurator.ReceiveEndpoint($"Elsa-{instanceNameProvider.GetName()}-{consumer.Name}", endpointConfigurator => { - configurator.AutoDeleteOnIdle = options.TemporaryQueueTtl ?? TimeSpan.FromHours(1); - configurator.ConcurrentMessageLimit = options.ConcurrentMessageLimit; - configurator.ConfigureConsumer(context, consumer.ConsumerType); + endpointConfigurator.AutoDeleteOnIdle = options.TemporaryQueueTtl ?? TimeSpan.FromHours(1); + endpointConfigurator.ConcurrentMessageLimit = options.ConcurrentMessageLimit; + endpointConfigurator.ConfigureConsumer(context, consumer.ConsumerType); }); } diff --git a/src/modules/Elsa.MassTransit.RabbitMq/Features/RabbitMqServiceBusFeature.cs b/src/modules/Elsa.MassTransit.RabbitMq/Features/RabbitMqServiceBusFeature.cs index 6b4fbbd2c..a17b590fb 100644 --- a/src/modules/Elsa.MassTransit.RabbitMq/Features/RabbitMqServiceBusFeature.cs +++ b/src/modules/Elsa.MassTransit.RabbitMq/Features/RabbitMqServiceBusFeature.cs @@ -48,8 +48,6 @@ public class RabbitMqServiceBusFeature : FeatureBase .Where(c => c.IsTemporary) .ToList(); - configure.AddConsumers(tempConsumers.Select(c => c.ConsumerType).ToArray()); - configure.UsingRabbitMq((context, configurator) => { var options = context.GetRequiredService>().Value; @@ -62,6 +60,8 @@ public class RabbitMqServiceBusFeature : FeatureBase foreach (var consumer in tempConsumers) { + configure.AddConsumer(consumer.ConsumerType).ExcludeFromConfigureEndpoints(); + configurator.ReceiveEndpoint($"{instanceNameProvider.GetName()}-{consumer.Name}", configurator => { diff --git a/src/modules/Elsa.MassTransit/Features/MassTransitFeature.cs b/src/modules/Elsa.MassTransit/Features/MassTransitFeature.cs index f503b6d2a..d08207bf6 100644 --- a/src/modules/Elsa.MassTransit/Features/MassTransitFeature.cs +++ b/src/modules/Elsa.MassTransit/Features/MassTransitFeature.cs @@ -81,6 +81,7 @@ public class MassTransitFeature : FeatureBase // Concatenate the manually registered consumers with the workflow message consumers. var consumerTypeDefinitions = this.GetConsumers() + .Where(c => !c.IsTemporary) .Concat(workflowMessageConsumers) .ToArray();