public override TransportReceiveInfrastructure ConfigureReceiveInfrastructure() { var connectionObject = new ConnectionString(connectionString); var client = CreateQueueClients.CreateReceiver(connectionObject); return(new TransportReceiveInfrastructure( () => { var addressing = GetAddressing(settings, connectionString); var unwrapper = EnvelopeWrapperBuilder.BuildUnwrapper(settings); var maximumWaitTime = settings.Get <TimeSpan>(WellKnownConfigurationKeys.ReceiverMaximumWaitTimeWhenIdle); var peekInterval = settings.Get <TimeSpan>(WellKnownConfigurationKeys.ReceiverPeekInterval); var receiver = new AzureMessageQueueReceiver(unwrapper, client, addressGenerator) { MessageInvisibleTime = settings.Get <TimeSpan>(WellKnownConfigurationKeys.ReceiverMessageInvisibleTime), }; int?degreeOfReceiveParallelism = null; if (settings.TryGet <int>(WellKnownConfigurationKeys.DegreeOfReceiveParallelism, out var parallelism)) { degreeOfReceiveParallelism = parallelism; } int?batchSize = null; if (settings.TryGet <int>(WellKnownConfigurationKeys.ReceiverBatchSize, out var size)) { batchSize = size; } return new MessagePump(receiver, addressing, degreeOfReceiveParallelism, batchSize, maximumWaitTime, peekInterval); }, () => new AzureMessageQueueCreator(client, addressGenerator), () => Task.FromResult(StartupCheckResult.Success) )); }
Dispatcher BuildDispatcher() { var addressing = GetAddressing(settings, connectionString); return(new Dispatcher(addressGenerator, addressing, EnvelopeWrapperBuilder.BuildWrapperSerializer(settings), delayedDelivery.ShouldDispatch)); }