/// <summary> /// Initializes a new instance of the <see cref="MessageGateway"/> class. /// </summary> /// <param name="logger">The logger.</param> public MessageGateway(ILog logger) { this.Logger = logger; Configuration = RMQMessagingGatewayConfigurationSection.GetConfiguration(); connectionFactory = new ConnectionFactory { Uri = Configuration.AMPQUri.Uri.ToString() }; }
public MessageGateway(ILog logger) { this.Logger = logger; Configuration = RMQMessagingGatewayConfigurationSection.GetConfiguration(); var connectionPolicyFactory = new ConnectionPolicyFactory(logger); retryPolicy = connectionPolicyFactory.RetryPolicy; circuitBreakerPolicy = connectionPolicyFactory.CircuitBreakerPolicy; connectionFactory = new ConnectionFactory { Uri = Configuration.AMPQUri.Uri.ToString(), RequestedHeartbeat = 30 }; }
public TestRMQListener(string channelName) { _channelName = channelName; var configuration = RMQMessagingGatewayConfigurationSection.GetConfiguration(); _connectionFactory = new ConnectionFactory { Uri = configuration.AMPQUri.Uri.ToString() }; _connection = _connectionFactory.CreateConnection(); _channel = _connection.CreateModel(); _channel.DeclareExchangeForConfiguration(configuration); _channel.QueueDeclare(_channelName, false, false, false, null); _channel.QueueBind(_channelName, configuration.Exchange.Name, _channelName); }
public TestRMQListener(string channelName) { this.channelName = channelName; var configuration = RMQMessagingGatewayConfigurationSection.GetConfiguration(); connectionFactory = new ConnectionFactory { Uri = configuration.AMPQUri.Uri.ToString() }; connection = connectionFactory.CreateConnection(); channel = connection.CreateModel(); channel.ExchangeDeclare(configuration.Exchange.Name, ExchangeType.Direct, false); channel.QueueDeclare(this.channelName, false, false, false, null); channel.QueueBind(this.channelName, configuration.Exchange.Name, this.channelName); }
/// <summary> /// Initializes a new instance of the <see cref="MessageGateway"/> class. /// Use if you need to inject a test logger /// </summary> /// <param name="logger">The logger.</param> public MessageGateway(ILog logger) { Logger = logger; Configuration = RMQMessagingGatewayConfigurationSection.GetConfiguration(); var connectionPolicyFactory = new ConnectionPolicyFactory(logger); _retryPolicy = connectionPolicyFactory.RetryPolicy; _circuitBreakerPolicy = connectionPolicyFactory.CircuitBreakerPolicy; _connectionFactory = new ConnectionFactory { Uri = Configuration.AMPQUri.Uri.ToString(), RequestedHeartbeat = 30 }; DelaySupported = (this is IAmAMessageGatewaySupportingDelay) && Configuration.Exchange.SupportDelay; }
/// <summary> /// Initializes a new instance of the <see cref="ConnectionPolicyFactory"/> class. /// Use if you need to inject a test logger /// </summary> /// <param name="logger">The logger.</param> public ConnectionPolicyFactory(ILog logger) { _logger = logger; var configuration = RMQMessagingGatewayConfigurationSection.GetConfiguration(); int retries = configuration.AMPQUri.ConnectionRetryCount; int retryWaitInMilliseconds = configuration.AMPQUri.RetryWaitInMilliseconds; int circuitBreakerTimeout = configuration.AMPQUri.CircuitBreakTimeInMilliseconds; RetryPolicy = Policy.Handle<BrokerUnreachableException>() .Or<Exception>() .WaitAndRetry( retries, retryAttempt => TimeSpan.FromMilliseconds(retryWaitInMilliseconds * Math.Pow(2, retryAttempt)), (exception, timeSpan, context) => { if (exception is BrokerUnreachableException) { _logger.WarnException( "RMQMessagingGateway: BrokerUnreachableException error on connecting to queue {0} exchange {1} on connection {2}. Will retry {3} times", exception, context["queueName"], configuration.Exchange.Name, configuration.AMPQUri.GetSanitizedUri(), retries); } else { logger.WarnException( "RMQMessagingGateway: Exception on connection to queue {0} via exchange {1} on connection {2}", exception, context["queueName"], configuration.Exchange.Name, configuration.AMPQUri.GetSanitizedUri()); throw exception; } }); CircuitBreakerPolicy = Policy.Handle<BrokerUnreachableException>().CircuitBreaker(1, TimeSpan.FromMilliseconds(circuitBreakerTimeout)); }
protected MessageGateway(ILog logger, string connectionName) : this(logger, RMQMessagingGatewayConfigurationSection.GetConfiguration(connectionName)) { }
protected MessageGateway(string connectionName) : this(LogProvider.For <MessageGateway>(), RMQMessagingGatewayConfigurationSection.GetConfiguration(connectionName)) { }
/// <summary> /// Initializes a new instance of the <see cref="MessageGateway"/> class. /// Use if you need to inject a test logger /// </summary> /// <param name="logger">The logger.</param> public MessageGateway(ILog logger) : this(logger, RMQMessagingGatewayConfigurationSection.GetConfiguration()) { }
/// <summary> /// Initializes a new instance of the <see cref="ConnectionPolicyFactory"/> class. /// </summary> /// <param name="logger">The logger.</param> public ConnectionPolicyFactory() : this(LogProvider.For <ConnectionPolicyFactory>(), RMQMessagingGatewayConfigurationSection.GetConfiguration()) { }
public TestRMQListener(string channelName, string connectionName) : this(channelName, RMQMessagingGatewayConfigurationSection.GetConfiguration(connectionName)) { }
/// <summary> /// Initializes a new instance of the <see cref="ConnectionPolicyFactory"/> class. /// </summary> /// <param name="logger">The logger.</param> public ConnectionPolicyFactory() : this(LogProvider.GetCurrentClassLogger(), RMQMessagingGatewayConfigurationSection.GetConfiguration()) { }
protected MessageGateway(string connectionName) : this(LogProvider.GetCurrentClassLogger(), RMQMessagingGatewayConfigurationSection.GetConfiguration(connectionName)) { }