Skip to content

Commit 7f26772

Browse files
authored
Fixing scaler provider initialization pattern (Azure#38673)
1 parent b415af0 commit 7f26772

File tree

3 files changed

+9
-42
lines changed

3 files changed

+9
-42
lines changed

sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/src/Config/EventHubWebJobsBuilderExtensions.cs

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -94,20 +94,9 @@ public static IWebJobsBuilder AddEventHubs(this IWebJobsBuilder builder, Action<
9494

9595
internal static IWebJobsBuilder AddEventHubsScaleForTrigger(this IWebJobsBuilder builder, TriggerMetadata triggerMetadata)
9696
{
97-
IServiceProvider serviceProvider = null;
98-
Lazy<EventHubsScalerProvider> scalerProvider = new Lazy<EventHubsScalerProvider>(() => new EventHubsScalerProvider(serviceProvider, triggerMetadata));
99-
100-
builder.Services.AddSingleton<IScaleMonitorProvider>(resolvedServiceProvider =>
101-
{
102-
serviceProvider = serviceProvider ?? resolvedServiceProvider;
103-
return scalerProvider.Value;
104-
});
105-
106-
builder.Services.AddSingleton<ITargetScalerProvider>(resolvedServiceProvider =>
107-
{
108-
serviceProvider = serviceProvider ?? resolvedServiceProvider;
109-
return scalerProvider.Value;
110-
});
97+
builder.Services.AddSingleton(serviceProvider => new EventHubsScalerProvider(serviceProvider, triggerMetadata));
98+
builder.Services.AddSingleton<IScaleMonitorProvider>(serviceProvider => serviceProvider.GetRequiredService<EventHubsScalerProvider>());
99+
builder.Services.AddSingleton<ITargetScalerProvider>(serviceProvider => serviceProvider.GetRequiredService<EventHubsScalerProvider>());
111100

112101
return builder;
113102
}

sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/src/Config/ServiceBusHostBuilderExtensions.cs

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -108,20 +108,9 @@ public static IWebJobsBuilder AddServiceBus(this IWebJobsBuilder builder, Action
108108

109109
internal static IWebJobsBuilder AddServiceBusScaleForTrigger(this IWebJobsBuilder builder, TriggerMetadata triggerMetadata)
110110
{
111-
IServiceProvider serviceProvider = null;
112-
Lazy<ServiceBusScalerProvider> scalerProvider = new Lazy<ServiceBusScalerProvider>(() => new ServiceBusScalerProvider(serviceProvider, triggerMetadata));
113-
114-
builder.Services.AddSingleton<IScaleMonitorProvider>(resolvedServiceProvider =>
115-
{
116-
serviceProvider = serviceProvider ?? resolvedServiceProvider;
117-
return scalerProvider.Value;
118-
});
119-
120-
builder.Services.AddSingleton<ITargetScalerProvider>(resolvedServiceProvider =>
121-
{
122-
serviceProvider = serviceProvider ?? resolvedServiceProvider;
123-
return scalerProvider.Value;
124-
});
111+
builder.Services.AddSingleton(serviceProvider => new ServiceBusScalerProvider(serviceProvider, triggerMetadata));
112+
builder.Services.AddSingleton<IScaleMonitorProvider>(serviceProvider => serviceProvider.GetRequiredService<ServiceBusScalerProvider>());
113+
builder.Services.AddSingleton<ITargetScalerProvider>(serviceProvider => serviceProvider.GetRequiredService<ServiceBusScalerProvider>());
125114

126115
return builder;
127116
}

sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/src/StorageQueuesWebJobsBuilderExtensions.cs

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,9 @@ public static IWebJobsBuilder AddAzureStorageQueues(this IWebJobsBuilder builder
7474
/// <returns></returns>
7575
public static IWebJobsBuilder AddAzureStorageQueuesScaleForTrigger(this IWebJobsBuilder builder, TriggerMetadata triggerMetadata)
7676
{
77-
IServiceProvider serviceProvider = null;
78-
Lazy<QueueScalerProvider> scalerProvider = new Lazy<QueueScalerProvider>(() => new QueueScalerProvider(serviceProvider, triggerMetadata));
79-
80-
builder.Services.AddSingleton<IScaleMonitorProvider>(resolvedServiceProvider =>
81-
{
82-
serviceProvider = serviceProvider ?? resolvedServiceProvider;
83-
return scalerProvider.Value;
84-
});
85-
86-
builder.Services.AddSingleton<ITargetScalerProvider>(resolvedServiceProvider =>
87-
{
88-
serviceProvider = serviceProvider ?? resolvedServiceProvider;
89-
return scalerProvider.Value;
90-
});
77+
builder.Services.AddSingleton(serviceProvider => new QueueScalerProvider(serviceProvider, triggerMetadata));
78+
builder.Services.AddSingleton<IScaleMonitorProvider>(serviceProvider => serviceProvider.GetRequiredService<QueueScalerProvider>());
79+
builder.Services.AddSingleton<ITargetScalerProvider>(serviceProvider => serviceProvider.GetRequiredService<QueueScalerProvider>());
9180

9281
return builder;
9382
}

0 commit comments

Comments
 (0)