Expose Azure Service Bus transport settings
This commit is contained in:
parent
a5c6824023
commit
e0238982c3
|
|
@ -10,19 +10,35 @@ namespace Elsa.Rebus.AzureServiceBus
|
|||
{
|
||||
public static class ElsaOptionsExtensions
|
||||
{
|
||||
public static ElsaOptions UseAzureServiceBus(this ElsaOptions elsaOptions, string connectionString, ITokenProvider? tokenProvider = default)
|
||||
{
|
||||
return elsaOptions.UseServiceBus(context => ConfigureAzureServiceBusEndpoint(elsaOptions, context, connectionString, tokenProvider));
|
||||
}
|
||||
public static ElsaOptions UseAzureServiceBus(this ElsaOptions elsaOptions, string connectionString) =>
|
||||
elsaOptions.UseServiceBus(context => ConfigureAzureServiceBusEndpoint(elsaOptions, context, connectionString, default, default));
|
||||
|
||||
private static void ConfigureAzureServiceBusEndpoint(ElsaOptions elsaOptions, ServiceBusEndpointConfigurationContext context, string connectionString, ITokenProvider? tokenProvider)
|
||||
public static ElsaOptions UseAzureServiceBus(this ElsaOptions elsaOptions, string connectionString, ITokenProvider tokenProvider) =>
|
||||
elsaOptions.UseServiceBus(context => ConfigureAzureServiceBusEndpoint(elsaOptions, context, connectionString, tokenProvider, default));
|
||||
|
||||
public static ElsaOptions UseAzureServiceBus(this ElsaOptions elsaOptions, string connectionString, Action<AzureServiceBusTransportSettings> configureTransport) =>
|
||||
elsaOptions.UseServiceBus(context => ConfigureAzureServiceBusEndpoint(elsaOptions, context, connectionString, default, configureTransport));
|
||||
|
||||
public static ElsaOptions UseAzureServiceBus(this ElsaOptions elsaOptions, string connectionString, ITokenProvider tokenProvider, Action<AzureServiceBusTransportSettings> configureTransport) =>
|
||||
elsaOptions.UseServiceBus(context => ConfigureAzureServiceBusEndpoint(elsaOptions, context, connectionString, tokenProvider, configureTransport));
|
||||
|
||||
private static void ConfigureAzureServiceBusEndpoint(
|
||||
ElsaOptions elsaOptions,
|
||||
ServiceBusEndpointConfigurationContext context,
|
||||
string connectionString,
|
||||
ITokenProvider? tokenProvider,
|
||||
Action<AzureServiceBusTransportSettings>? configureTransport)
|
||||
{
|
||||
var queueName = context.QueueName;
|
||||
var loggerFactory = context.ServiceProvider.GetRequiredService<ILoggerFactory>();
|
||||
|
||||
context.Configurer
|
||||
.Logging(l => l.MicrosoftExtensionsLogging(loggerFactory))
|
||||
.Transport(t => t.UseAzureServiceBus(connectionString, queueName, tokenProvider).SetMessagePeekLockDuration(TimeSpan.FromMinutes(5)).AutomaticallyRenewPeekLock())
|
||||
.Transport(t =>
|
||||
{
|
||||
var transport = t.UseAzureServiceBus(connectionString, queueName, tokenProvider);
|
||||
configureTransport?.Invoke(transport);
|
||||
})
|
||||
.Routing(r => r.TypeBased().Map(context.MessageTypeMap))
|
||||
.Options(o => o.Apply(elsaOptions.ServiceBusOptions));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue