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);
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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;
        }