From 7f267723e231e064015c5f98cb9e332dbbabc584 Mon Sep 17 00:00:00 2001 From: Alexey Rodionov Date: Thu, 14 Sep 2023 08:32:11 -0700 Subject: [PATCH] Fixing scaler provider initialization pattern (#38673) --- .../Config/EventHubWebJobsBuilderExtensions.cs | 17 +++-------------- .../Config/ServiceBusHostBuilderExtensions.cs | 17 +++-------------- .../StorageQueuesWebJobsBuilderExtensions.cs | 17 +++-------------- 3 files changed, 9 insertions(+), 42 deletions(-) diff --git a/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/src/Config/EventHubWebJobsBuilderExtensions.cs b/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/src/Config/EventHubWebJobsBuilderExtensions.cs index ea86003d8bb1..d8d817dac687 100644 --- a/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/src/Config/EventHubWebJobsBuilderExtensions.cs +++ b/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/src/Config/EventHubWebJobsBuilderExtensions.cs @@ -94,20 +94,9 @@ public static IWebJobsBuilder AddEventHubs(this IWebJobsBuilder builder, Action< internal static IWebJobsBuilder AddEventHubsScaleForTrigger(this IWebJobsBuilder builder, TriggerMetadata triggerMetadata) { - IServiceProvider serviceProvider = null; - Lazy scalerProvider = new Lazy(() => new EventHubsScalerProvider(serviceProvider, triggerMetadata)); - - builder.Services.AddSingleton(resolvedServiceProvider => - { - serviceProvider = serviceProvider ?? resolvedServiceProvider; - return scalerProvider.Value; - }); - - builder.Services.AddSingleton(resolvedServiceProvider => - { - serviceProvider = serviceProvider ?? resolvedServiceProvider; - return scalerProvider.Value; - }); + builder.Services.AddSingleton(serviceProvider => new EventHubsScalerProvider(serviceProvider, triggerMetadata)); + builder.Services.AddSingleton(serviceProvider => serviceProvider.GetRequiredService()); + builder.Services.AddSingleton(serviceProvider => serviceProvider.GetRequiredService()); return builder; } diff --git a/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/src/Config/ServiceBusHostBuilderExtensions.cs b/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/src/Config/ServiceBusHostBuilderExtensions.cs index 2134c993c75e..a4a710617f04 100644 --- a/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/src/Config/ServiceBusHostBuilderExtensions.cs +++ b/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/src/Config/ServiceBusHostBuilderExtensions.cs @@ -108,20 +108,9 @@ public static IWebJobsBuilder AddServiceBus(this IWebJobsBuilder builder, Action internal static IWebJobsBuilder AddServiceBusScaleForTrigger(this IWebJobsBuilder builder, TriggerMetadata triggerMetadata) { - IServiceProvider serviceProvider = null; - Lazy scalerProvider = new Lazy(() => new ServiceBusScalerProvider(serviceProvider, triggerMetadata)); - - builder.Services.AddSingleton(resolvedServiceProvider => - { - serviceProvider = serviceProvider ?? resolvedServiceProvider; - return scalerProvider.Value; - }); - - builder.Services.AddSingleton(resolvedServiceProvider => - { - serviceProvider = serviceProvider ?? resolvedServiceProvider; - return scalerProvider.Value; - }); + builder.Services.AddSingleton(serviceProvider => new ServiceBusScalerProvider(serviceProvider, triggerMetadata)); + builder.Services.AddSingleton(serviceProvider => serviceProvider.GetRequiredService()); + builder.Services.AddSingleton(serviceProvider => serviceProvider.GetRequiredService()); return builder; } diff --git a/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/src/StorageQueuesWebJobsBuilderExtensions.cs b/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/src/StorageQueuesWebJobsBuilderExtensions.cs index 57d85a61aae4..3fd8b9a905c0 100644 --- a/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/src/StorageQueuesWebJobsBuilderExtensions.cs +++ b/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/src/StorageQueuesWebJobsBuilderExtensions.cs @@ -74,20 +74,9 @@ public static IWebJobsBuilder AddAzureStorageQueues(this IWebJobsBuilder builder /// public static IWebJobsBuilder AddAzureStorageQueuesScaleForTrigger(this IWebJobsBuilder builder, TriggerMetadata triggerMetadata) { - IServiceProvider serviceProvider = null; - Lazy scalerProvider = new Lazy(() => new QueueScalerProvider(serviceProvider, triggerMetadata)); - - builder.Services.AddSingleton(resolvedServiceProvider => - { - serviceProvider = serviceProvider ?? resolvedServiceProvider; - return scalerProvider.Value; - }); - - builder.Services.AddSingleton(resolvedServiceProvider => - { - serviceProvider = serviceProvider ?? resolvedServiceProvider; - return scalerProvider.Value; - }); + builder.Services.AddSingleton(serviceProvider => new QueueScalerProvider(serviceProvider, triggerMetadata)); + builder.Services.AddSingleton(serviceProvider => serviceProvider.GetRequiredService()); + builder.Services.AddSingleton(serviceProvider => serviceProvider.GetRequiredService()); return builder; }