public MessagePump( ReceiveSettings settings, ConnectionFactory connectionFactory, IRoutingTopology routingTopology, MessageConverter messageConverter, string consumerTag, ChannelProvider channelProvider, TimeSpan timeToWaitBeforeTriggeringCircuitBreaker, PrefetchCountCalculation prefetchCountCalculation, Action <string, Exception, CancellationToken> criticalErrorAction, TimeSpan retryDelay) { this.settings = settings; this.connectionFactory = connectionFactory; this.messageConverter = messageConverter; this.consumerTag = consumerTag; this.channelProvider = channelProvider; this.timeToWaitBeforeTriggeringCircuitBreaker = timeToWaitBeforeTriggeringCircuitBreaker; this.prefetchCountCalculation = prefetchCountCalculation; this.criticalErrorAction = criticalErrorAction; this.retryDelay = retryDelay; ReceiveAddress = RabbitMQTransportInfrastructure.TranslateAddress(settings.ReceiveAddress); if (settings.UsePublishSubscribe) { Subscriptions = new SubscriptionManager(connectionFactory, routingTopology, ReceiveAddress); } queuePurger = new QueuePurger(connectionFactory); name = $"{ReceiveAddress} MessagePump"; }
public MessagePump(ConnectionFactory connectionFactory, IRoutingTopology routingTopology, MessageConverter messageConverter, string consumerTag, ChannelProvider channelProvider, TimeSpan timeToWaitBeforeTriggeringCircuitBreaker, PrefetchCountCalculation prefetchCountCalculation, ReceiveSettings settings, Action <string, Exception, CancellationToken> criticalErrorAction) { this.connectionFactory = connectionFactory; this.messageConverter = messageConverter; this.consumerTag = consumerTag; this.channelProvider = channelProvider; this.timeToWaitBeforeTriggeringCircuitBreaker = timeToWaitBeforeTriggeringCircuitBreaker; this.prefetchCountCalculation = prefetchCountCalculation; this.settings = settings; this.criticalErrorAction = criticalErrorAction; if (settings.UsePublishSubscribe) { Subscriptions = new SubscriptionManager(connectionFactory, routingTopology, settings.ReceiveAddress); } queuePurger = new QueuePurger(connectionFactory); }
IMessageReceiver CreateMessagePump(HostSettings hostSettings, ReceiveSettings settings, MessageConverter messageConverter, TimeSpan timeToWaitBeforeTriggeringCircuitBreaker, PrefetchCountCalculation prefetchCountCalculation) { var consumerTag = $"{hostSettings.HostDisplayName} - {hostSettings.Name}"; return(new MessagePump(connectionFactory, routingTopology, messageConverter, consumerTag, channelProvider, timeToWaitBeforeTriggeringCircuitBreaker, prefetchCountCalculation, settings, hostSettings.CriticalErrorAction)); }
public RabbitMQTransportInfrastructure(HostSettings hostSettings, ReceiveSettings[] receiverSettings, ConnectionFactory connectionFactory, IRoutingTopology routingTopology, ChannelProvider channelProvider, MessageConverter messageConverter, TimeSpan timeToWaitBeforeTriggeringCircuitBreaker, PrefetchCountCalculation prefetchCountCalculation) { this.connectionFactory = connectionFactory; this.routingTopology = routingTopology; this.channelProvider = channelProvider; Dispatcher = new MessageDispatcher(channelProvider); Receivers = receiverSettings.Select(x => CreateMessagePump(hostSettings, x, messageConverter, timeToWaitBeforeTriggeringCircuitBreaker, prefetchCountCalculation)) .ToDictionary(x => x.Id, x => x); }