private void RegisterPublishers(IRabbitMqService rabbitMqService) { var publishExchanges = new List <string> { _settings.RabbitMqQueues.OrderHistory.ExchangeName, _settings.RabbitMqQueues.OrderbookPrices.ExchangeName, _settings.RabbitMqQueues.AccountMarginEvents.ExchangeName, _settings.RabbitMqQueues.AccountStats.ExchangeName, _settings.RabbitMqQueues.Trades.ExchangeName, _settings.RabbitMqQueues.PositionHistory.ExchangeName, _settings.RabbitMqQueues.ExternalOrder.ExchangeName, }; var bytesSerializer = new BytesStringSerializer(); foreach (var exchangeName in publishExchanges) { var settings = new RabbitMqSettings { ConnectionString = _settings.MtRabbitMqConnString, ExchangeName = exchangeName }; _publishers[exchangeName] = rabbitMqService.GetProducer(settings, bytesSerializer); } _publishers[_settings.RfqChangedRabbitMqSettings.ExchangeName] = rabbitMqService.GetProducer(_settings.RfqChangedRabbitMqSettings, bytesSerializer); }
private void RegisterPublishers(ContainerBuilder builder, IConsole consoleWriter) { var publishers = new List <string> { _settings.RabbitMqQueues.AccountHistory.ExchangeName, _settings.RabbitMqQueues.OrderHistory.ExchangeName, _settings.RabbitMqQueues.OrderRejected.ExchangeName, _settings.RabbitMqQueues.OrderbookPrices.ExchangeName, _settings.RabbitMqQueues.OrderChanged.ExchangeName, _settings.RabbitMqQueues.AccountChanged.ExchangeName, _settings.RabbitMqQueues.AccountStopout.ExchangeName, _settings.RabbitMqQueues.UserUpdates.ExchangeName, _settings.RabbitMqQueues.AccountMarginEvents.ExchangeName, _settings.RabbitMqQueues.AccountStats.ExchangeName, _settings.RabbitMqQueues.Trades.ExchangeName, _settings.RabbitMqQueues.ExternalOrder.ExchangeName }; var bytesSerializer = new BytesStringSerializer(); foreach (var exchangeName in publishers) { var pub = new RabbitMqPublisher <string>(new RabbitMqSubscriptionSettings { ConnectionString = _settings.MtRabbitMqConnString, ExchangeName = exchangeName }) .SetSerializer(bytesSerializer) .SetPublishStrategy(new DefaultFanoutPublishStrategy(new RabbitMqSubscriptionSettings { IsDurable = true })) .DisableInMemoryQueuePersistence() .SetLogger(_log) .SetConsole(consoleWriter) .Start(); builder.RegisterInstance(pub) .Named <IMessageProducer <string> >(exchangeName) .As <IStopable>() .SingleInstance(); } }
private void RegisterPublishers(ContainerBuilder builder, IConsole consoleWriter) { var publishers = new List <string> { _settings.RabbitMqQueues.OrderHistory.ExchangeName, _settings.RabbitMqQueues.OrderbookPrices.ExchangeName, _settings.RabbitMqQueues.AccountMarginEvents.ExchangeName, _settings.RabbitMqQueues.AccountStats.ExchangeName, _settings.RabbitMqQueues.Trades.ExchangeName, _settings.RabbitMqQueues.PositionHistory.ExchangeName, _settings.RabbitMqQueues.ExternalOrder.ExchangeName, }; var bytesSerializer = new BytesStringSerializer(); foreach (var exchangeName in publishers) { builder .Register(ctx => { var pub = new RabbitMqPublisher <string>(ctx.Resolve <ILoggerFactory>(), new RabbitMqSubscriptionSettings { ConnectionString = _settings.MtRabbitMqConnString, ExchangeName = exchangeName }) .SetSerializer(bytesSerializer) .SetPublishStrategy(new DefaultFanoutPublishStrategy(new RabbitMqSubscriptionSettings { IsDurable = true })) .DisableInMemoryQueuePersistence() .SetWriteHeadersFunc(ctx.Resolve <RabbitMqCorrelationManager>().BuildCorrelationHeadersIfExists); pub.Start(); return(pub); }) .Named <IMessageProducer <string> >(exchangeName) .As <IStartStop>() .SingleInstance(); } }