Ejemplo n.º 1
0
        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)
                       ));
        }
Ejemplo n.º 2
0
        Dispatcher BuildDispatcher()
        {
            var addressing = GetAddressing(settings, connectionString);

            return(new Dispatcher(addressGenerator, addressing, EnvelopeWrapperBuilder.BuildWrapperSerializer(settings), delayedDelivery.ShouldDispatch));
        }