public static void AddCoseiRabbitMq(this IServiceCollection services, RabbitMqConfiguration rmqConfig) { services.AddSingleton(rmqConfig); services.AddSingleton <IRabbitMqModelFactory, RabbitMqModelFactory>(); services.AddPublisher <RabbitMqPublisher>(); services.AddHostedService <RabbitMqConsumer>(); }
public static void AddCoseiRabbitMq(this IServiceCollection services, Action <RabbitMqConfiguration> configure) { var rmqConfig = new RabbitMqConfiguration(); configure(rmqConfig); services.AddCoseiRabbitMq(rmqConfig); }
public RabbitMqModelFactory(RabbitMqConfiguration configuration) { var factory = new ConnectionFactory() { HostName = configuration.Host, VirtualHost = configuration.VirtualHost, UserName = configuration.UserName, Password = configuration.Password }; factory.AutomaticRecoveryEnabled = true; factory.NetworkRecoveryInterval = TimeSpan.FromSeconds(10); _connection = factory.CreateConnection(); }
public RabbitMqConsumer( ILogger <RabbitMqConsumer> logger, IRabbitMqModelFactory factory, RabbitMqConfiguration configuration, IServiceProvider serviceProvider, IRequestDelegateProvider delegateProvider) { _logger = logger; _factory = factory; _serviceProvider = serviceProvider; _delegateProvider = delegateProvider; _queueName = configuration.QueueName; _prefetchSize = configuration.PrefetchSize; _prefetchCount = configuration.PrefetchCount; }