public void Start() { var settings = new RabbitMqSubscriptionSettings { ConnectionString = _settings.ConnectionString, ExchangeName = _settings.ExchangeName, QueueName = _settings.QueueName, IsDurable = true }; var errorHandlingStrategy = new ResilientErrorHandlingStrategy(_logFactory, settings, retryTimeout: TimeSpan.FromSeconds(10), next: new DeadQueueErrorHandlingStrategy(_logFactory, settings)); _subscriber = new RabbitMqSubscriber <HistoryOperation>(_logFactory, settings, errorHandlingStrategy) .SetMessageDeserializer(new JsonMessageDeserializer <HistoryOperation>()) .SetMessageReadStrategy(new MessageReadQueueStrategy()) .Subscribe(ProcessMessageAsync) .CreateDefaultBinding() .Start(); _log.Info($"<< {nameof(HistoryOperationSubscruber)} is started."); }
public void SetUp() { RabbitMqSubscriptionSettings settings = new RabbitMqSubscriptionSettings { QueueName = "QueueName" }; _strategy = new ResilientErrorHandlingStrategy(EmptyLogFactory.Instance, settings, TimeSpan.FromMilliseconds(5)); }
public void Start() { var settings = RabbitMqSubscriptionSettings .CreateForSubscriber(_settings.ConnectionString, _settings.InvoiceConfirmationExchangeName, "invoiceconfirmation") .MakeDurable(); settings.DeadLetterExchangeName = null; var errorHandlingStrategy = new ResilientErrorHandlingStrategy(_logFactory, settings, retryTimeout: TimeSpan.FromSeconds(10), next: new DeadQueueErrorHandlingStrategy(_logFactory, settings)); _subscriber = new RabbitMqSubscriber <InvoiceConfirmation>(_logFactory, settings, errorHandlingStrategy) .SetMessageDeserializer(new JsonMessageDeserializer <InvoiceConfirmation>()) .SetMessageReadStrategy(new MessageReadQueueStrategy()) .Subscribe(ProcessMessageAsync) .CreateDefaultBinding() .Start(); _log.Info($"<< {nameof(InvoiceConfirmationSubscriber)} is started."); }
public void Start() { { var settings = new RabbitMqSubscriptionSettings { ConnectionString = _rabbitMqSettings.ConnectionString, QueueName = QueueName, ExchangeName = _rabbitMqSettings.ExchangeEthereumEvents, DeadLetterExchangeName = $"{_rabbitMqSettings.ExchangeEthereumEvents}.dlx", RoutingKey = "", IsDurable = true }; try { var resilentErrorHandlingStrategyEth = new ResilientErrorHandlingStrategy(_logFactory, settings, retryTimeout: TimeSpan.FromSeconds(10), retryNum: 10, next: new DeadQueueErrorHandlingStrategy(_logFactory, settings)); _subscriber = new RabbitMqSubscriber <CoinEvent>(_logFactory, settings, resilentErrorHandlingStrategyEth) .SetMessageDeserializer(new JsonMessageDeserializer <CoinEvent>()) .SetMessageReadStrategy(new MessageReadQueueStrategy()) .SetAlternativeExchange(settings.ConnectionString) .SetDeduplicator(MongoStorageDeduplicator.Create(_deduplicatorSettings.ConnectionString, _deduplicatorSettings.CollectionName)) .Subscribe(SendEventToCqrs) .CreateDefaultBinding() .Start(); } catch (Exception ex) { _log.Error(ex); throw; } } #region HotWallet { string exchangeName = $"{_rabbitMqSettings.ExchangeEthereumEvents}.hotwallet"; var settings = new RabbitMqSubscriptionSettings { ConnectionString = _rabbitMqSettings.ConnectionString, QueueName = HotWalletQueueName, ExchangeName = exchangeName, DeadLetterExchangeName = $"{exchangeName}.dlx", RoutingKey = "", IsDurable = true }; var resilentErrorHandlingStrategyEth = new ResilientErrorHandlingStrategy(_logFactory, settings, retryTimeout: TimeSpan.FromSeconds(10), retryNum: 10, next: new DeadQueueErrorHandlingStrategy(_logFactory, settings)); try { _subscriberHotWallet = new RabbitMqSubscriber <HotWalletEvent>(_logFactory, settings, resilentErrorHandlingStrategyEth) .SetMessageDeserializer(new JsonMessageDeserializer <HotWalletEvent>()) .SetMessageReadStrategy(new MessageReadQueueStrategy()) .SetAlternativeExchange(settings.ConnectionString) .SetDeduplicator(MongoStorageDeduplicator.Create(_deduplicatorSettings.ConnectionString, _deduplicatorSettings.CollectionName)) .Subscribe(SendHotWalletEventToCqrs) .CreateDefaultBinding() .Start(); } catch (Exception ex) { _log.Error(ex); throw; } } #endregion }