Пример #1
0
        private IBusControl ConfigureBus(BusConfigurations options,
                                         Action <IRabbitMqBusFactoryConfigurator, IRabbitMqHost> configurations = null)
        {
            return(Bus.Factory.CreateUsingRabbitMq(cfg =>
            {
                var host = cfg.Host(new Uri(options.HostName), h =>
                {
                    h.Username(options.Username);
                    h.Password(options.Password);
                });

                foreach (var action in _config)
                {
                    action.Invoke(cfg, host);
                }

                ConfigureIncrementalRetryPolicy(cfg);
                ConfigureCircuitBreaker(cfg);
                ConfigureDelayedExchangeMessageScheduler(cfg);
                ConfigureMessageScheduler(cfg);
                UseRateLimiter(cfg);
                UseInMemoryScheduler(cfg);


                configurations?.Invoke(cfg, host);
            }));
        }
Пример #2
0
        private static BusConfigurations GetConfiguration()
        {
            var configurations = new BusConfigurations();

            Configuration.GetSection("BusConfigurations").Bind(configurations);
            return(configurations);
        }
        public BusConfiguratorFixture()
        {
            _testConsumer = new TestMailCommandConsumer();

            _busConfigurations = new BusConfigurations()
            {
                HostName    = "rabbitmq://localhost",
                Username    = "******",
                Password    = "******",
                RetryPolicy = new IncrementalRetryPolicyOptions()
                {
                    Enabled           = true,
                    InitialInterval   = 2,
                    IntervalIncrement = 5,
                    RetryLimit        = 5
                }
            };

            var config = BusConfigurator.Instance
                         .Options(_busConfigurations).Configure((cfg, host) =>
            {
                cfg.ReceiveEndpoint(queueName,
                                    e =>
                {
                    e.Consumer(() => _testConsumer);
                });
            });

            _busControl = config.Build();

            _busControl.Start();
        }
Пример #4
0
        public Receiver(BusConfigurations options, ILifetimeScope scope)
        {
            var config = BusConfigurator.Instance
                         .Options(options)
                         .Configure((cfg, host) =>
            {
                foreach (var queue in options.ConsumeOnSpecifiedQueue)
                {
                    cfg.ReceiveEndpoint(queue,
                                        e => { e.Consumer(typeof(MailCommandConsumer), type => scope.Resolve(type)); });
                }
            });

            _bus = config.Build();
        }
Пример #5
0
 public Startup(IReceiver receiver, BusConfigurations busConfigurations, ILogger <Startup> logger)
 {
     _receiver          = receiver;
     _busConfigurations = busConfigurations;
     _logger            = logger;
 }
Пример #6
0
        public Publisher(BusConfigurations options)
        {
            _options = options;

            _bus = BusConfigurator.Instance.Options(_options).Build();
        }
Пример #7
0
        public BusConfigurator Options(BusConfigurations options)
        {
            _options = options;

            return(this);
        }