public EventBusRabbitMQ(
     IServiceProvider serviceProvider,
     IRabbitMQPersistentConnection persistentConnection,
     ILogger <EventBusRabbitMQ> logger,
     IEventBusSubscriptionsManager subsManager,
     string commandExchangeName,
     string eventExchangeName,
     string queueName = null,
     int retryCount   = 5)
 {
     _serviceProvider      = serviceProvider;
     _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
     _logger                      = logger ?? throw new ArgumentNullException(nameof(logger));
     _subsManager                 = subsManager ?? new InMemoryEventBusSubscriptionsManager();
     _commandExchangeName         = commandExchangeName;
     _eventExchangeName           = eventExchangeName;
     _queueName                   = queueName;
     _consumerChannel             = CreateConsumerChannel();
     _retryCount                  = retryCount;
     _subsManager.OnEventRemoved += SubsManager_OnEventRemoved;
 }
Esempio n. 2
0
        public EventBusRabbitMQ(
            IServiceProvider services,
            IOptions <EventBusRabbitMQOptions> options,
            IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger,
            IEventBusSubscriptionsManager subsManager)
        {
            _logger = logger;

            _services = services;

            _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));

            _subsManager = subsManager ?? new EventBusSubscriptionsManager();

            _options = options.Value;

            _exchangeType = "direct";

            _consumerChannel = CreateConsumerChannel();

            _subsManager.OnEventRemoved += SubsManager_OnEventRemoved;
        }
Esempio n. 3
0
        /// <summary>
        /// RabbitMQ事件总线
        /// </summary>
        /// <param name="persistentConnection">RabbitMQ持久连接</param>
        /// <param name="logger">日志</param>
        /// <param name="service">生命周期</param>
        /// <param name="subsManager">订阅管理器</param>
        /// <param name="queueName">队列名称</param>
        /// <param name="exchangeName">交换机名称</param>
        /// <param name="retryCount">重试次数</param>
        /// <param name="autoListening"></param>
        public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IServiceProvider service, IEventBusSubscriptionsManager subsManager, string queueName, string exchangeName = "MateralTFMSEventBusExchange", int retryCount = 5, bool autoListening = true)
        {
            _persistentConnection =
                persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
            _logger       = logger ?? throw new ArgumentNullException(nameof(logger));
            _subsManager  = subsManager ?? new InMemoryEventBusSubscriptionsManager();
            _queueName    = queueName;
            _service      = service;
            _retryCount   = retryCount;
            _exchangeName = exchangeName;
            _subsManager.OnEventRemoved += SubsManager_OnEventRemoved;
            Task task = Task.Run(async() =>
            {
                _consumerChannel = await CreateConsumerChannelAsync();
            });

            Task.WaitAll(task);
            if (autoListening)
            {
                StartListening();
            }
        }
Esempio n. 4
0
        public ServiceBusEventBus(string connectionString, string topic, ILogger <ServiceBusEventBus> logger, IEventBusSubscriptionsManager subsManager, IServiceProvider serviceProvider, string subscriptionClientName, bool labelFiltering)
        {
            _logger           = logger ?? throw new ArgumentNullException(nameof(logger));
            _labelFiltering   = labelFiltering;
            _topic            = topic;
            _connectionString = connectionString;
            _serviceProvider  = serviceProvider;

            _topicClient = CreateTopicClient();

            // check if subscriber
            if (!string.IsNullOrEmpty(subscriptionClientName))
            {
                // this is a subscriber
                _subsManager        = subsManager ?? new InMemoryEventBusSubscriptionsManager();
                _subscriptionClient = new SubscriptionClient(connectionString, topic, subscriptionClientName);

                if (labelFiltering)
                {
                    RemoveDefaultRule();
                }
            }
        }
Esempio n. 5
0
        private void RegisterEventBus(IServiceCollection services)
        {
            // = services.Resolve<IEventBusSubscriptionsManager>();//app.ApplicationServices.GetRequiredService<IEventBusSubscriptionsManager>();
            services.AddSingleton <IEventBus, RabbitMQBus>(sp =>
            {
                var rabbitMQPersistentConnection = sp.GetRequiredService <IRabbitMQPersistentConnection>();
                var iLifetimeScope = sp.GetRequiredService <ILifetimeScope>();
                var logger         = sp.GetRequiredService <ILogger <RabbitMQBus> >();
                if (_eventBusSubcriptionsManager == null)
                {
                    _eventBusSubcriptionsManager = sp.GetRequiredService <IEventBusSubscriptionsManager>();
                }
                var retryCount = 5;
                if (_config.EventBusRetryCount > 0)
                {
                    retryCount = _config.EventBusRetryCount;
                }

                return(new RabbitMQBus(rabbitMQPersistentConnection, logger, iLifetimeScope, _eventBusSubcriptionsManager, _config.SubscriptionClientName, retryCount));
            });

            services.AddSingleton <IEventBusSubscriptionsManager, InMemoryEventBusSubscriptionsManager>();
            services.AddSingleton <VehicleStatusChangedIntegrationEventHandler>();
        }
Esempio n. 6
0
        public RabbitMqEventBus(
            string queueName, string exchangeName,
            bool deadLettetingEnabled,
            string deadLetteringSufix,
            IRabbitMqPersistentConnection persistentConnection,
            ILogger <RabbitMqEventBus> logger,
            IEventBusSubscriptionsManager subscriptionsManager,
            IServiceProvider serviceProvider,
            Action <Action> resillientPublishPolicyAction,
            Func <IServiceScope, object, Task> preprocessAction)
        {
            _queueName            = queueName;
            _exchangeName         = exchangeName;
            _deadLettetingEnabled = deadLettetingEnabled;
            _deadLetteringSufix   = deadLetteringSufix;
            _persistentConnection = persistentConnection;
            _logger = logger;
            _subscriptionsManager          = subscriptionsManager;
            _serviceProvider               = serviceProvider;
            _resillientPublishPolicyAction = resillientPublishPolicyAction;
            _preprocessAction              = preprocessAction;

            DeclareExchangeAndQueue();
        }
Esempio n. 7
0
        public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection,
                                ILifetimeScope autofac,
                                IEventBusSubscriptionsManager subsManager,
                                Serilog.ILogger logger,
                                string queueName = null,
                                int retryCount   = 5)
        {
            _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
            _subsManager          = subsManager ?? new InMemoryEventBusSubscriptionsManager();
            _queueName            = queueName;
            _consumerChannel      = CreateConsumerChannel(logger);
            _autofac    = autofac;
            _retryCount = retryCount;
            _subsManager.OnEventRemoved += SubsManager_OnEventRemoved;

            _retryPolicy = Policy.Handle <BrokerUnreachableException>()
                           .Or <SocketException>()
                           .WaitAndRetryAsync(_retryCount, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (ex, time) =>
            {
                _logger.Error("error");
            });

            _logger = logger;
        }
Esempio n. 8
0
        public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IEventBusSubscriptionsManager subsManager)
        {
            BROKER_NAME           = AppConfig.BrokerName;
            _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
            _logger      = logger ?? throw new ArgumentNullException(nameof(logger));
            _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager();

            _subsManager.OnEventRemoved += SubsManager_OnEventRemoved;
        }
 public EventBusRabbitMqDynamic(IRabbitMqPersistentConnection persistentConnection, ILoggerFactory loggerFactory,
                                ILifetimeScope autofac, IIntegrationGeneralHandler eventHandler, IEventBusSubscriptionsManager subsManager,
                                IExchangeDeclareParameters exchangeDeclareParameters,
                                IQueueDeclareParameters queueDeclareParameters,
                                string queueName         = null,
                                CancellationToken cancel = default)
     : base(persistentConnection, loggerFactory, eventHandler, subsManager, exchangeDeclareParameters, queueDeclareParameters, queueName, cancel)
 {
     _autofac        = autofac;
     ConsumerChannel = CreateConsumerChannel(cancel);
 }
Esempio n. 10
0
        // ReSharper disable once SuggestBaseTypeForParameter
        public EventBusRabbitMq(IServiceProvider serviceProvider, ILogger <EventBusRabbitMq> logger, IOptions <BusSetting> options, IRabbitMqPersistentConnection persistentConnection, IEventBusSubscriptionsManager subscriptionsManager)
        {
            _serviceProvider = serviceProvider;
            _logger          = logger;
            _options         = options.Value;

            _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
            _subscriptionsManager = subscriptionsManager ?? _serviceProvider.GetRequiredService <InMemoryEventBusSubscriptionsManager>();

            //_consumerChannel = CreateConsumerChannel();
            _subscriptionsManager.OnEventRemoved += SubsManager_OnEventRemoved;
        }
Esempio n. 11
0
 public EventBusMSMQ(ILogger <EventBusMSMQ> logger, IEventBusSubscriptionsManager subscriptionsManager, string queueName = null)
 {
     _logger = logger ?? throw new ArgumentNullException(nameof(logger));
     _subscriptionsManager = subscriptionsManager ?? new InMemoryEventBusSubscriptionsManager();
     _queueName            = queueName;
 }
Esempio n. 12
0
        public EventBusServiceBus(IServiceBusPersisterConnection serviceBusPersisterConnection, string subscriptionClientName, IEventBusSubscriptionsManager subsManager,
                                  ILifetimeScope autofac)
        {
            _autofac = autofac;
            _serviceBusPersisterConnection = serviceBusPersisterConnection;
            _subsManager        = subsManager ?? new InMemoryEventBusSubscriptionsManager();
            _subscriptionClient = new SubscriptionClient(serviceBusPersisterConnection.ServiceBusConnectionStringBuilder, subscriptionClientName);

            RemoveDefaultRule();
            RegisterSubscriptionClientMessageHandler();
        }
Esempio n. 13
0
 public EventBusRabbitMq(IEventBusSubscriptionsManager subscriptionsManager, ILogger <EventBusRabbitMq> logger)
 {
     _subscriptionsManager = subscriptionsManager;
     _logger = logger;
 }
Esempio n. 14
0
 public EventBusMassTransit(IEventBusSubscriptionsManager subscriptionsManager, IBusControl busControl)
 {
     _subsManager = subscriptionsManager;
     _BusControl  = busControl;
 }
Esempio n. 15
0
 public MessageConsumer(IEventBusSubscriptionsManager manager)
 {
     _subsManager = manager;
 }
Esempio n. 16
0
 public InMemoryEventBus(IEventBusSubscriptionsManager subsManager, IServiceProvider serviceProvider)
 {
     _subsManager     = subsManager;
     _serviceProvider = serviceProvider;
 }
Esempio n. 17
0
 protected AbstractEventBus(IServiceProvider serviceProvider)
 {
     this.serviceProvider      = serviceProvider;
     this.logger               = serviceProvider.GetService <ILogger <IEventBus> >();
     this.subscriptionsManager = serviceProvider.GetService <IEventBusSubscriptionsManager>();
 }
Esempio n. 18
0
 public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILifetimeScope autofac, IEventBusSubscriptionsManager subscriptionsManager,
                         string queueName, int retryCount)
 {
     _persistentConnection = persistentConnection;
     _autofac = autofac;
     _subscriptionsManager = subscriptionsManager;
     _queueName            = queueName;
     _retryCount           = retryCount;
     _consumerChannel      = CreateConsumerChannel();
     _subscriptionsManager.OnEventRemoved += SubsManager_OnEventRemoved;
 }
Esempio n. 19
0
 public InMemoryEventBus(IServiceProvider serviceProvider)
 {
     _serviceProvider = serviceProvider;
     _logger          = _serviceProvider.GetRequiredService <ILogger <InMemoryEventBus> >();
     _subsManager     = new InMemoryEventBusSubscriptionsManager();
 }
Esempio n. 20
0
        public EventBusRabbitMQ(IRabbitMQPersistentConnection rabbitMQPersistentConnection, IEventBusSubscriptionsManager eventBusSubscriptionsManager, ILifetimeScope lifetimeScope, string subscriptionQueueName = null, int retryCount = 5)
        {
            persistentConnection = rabbitMQPersistentConnection;
            subscriptionsManager = eventBusSubscriptionsManager;
            autofac         = lifetimeScope;
            queueName       = subscriptionQueueName;
            this.retryCount = retryCount;

            consumerChannel = CreateConsumerChannel();
        }
Esempio n. 21
0
 public RabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILifetimeScope autofac, IEventBusSubscriptionsManager subsManager, string queueName = null)
 {
     _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
     _subsManager          = subsManager ?? new InMemoryEventBusSubscriptionsManager();
     _autofac                     = autofac;
     _queueName                   = queueName;
     _consumerChannel             = CreateConsumerChannel();
     _subsManager.OnEventRemoved += SubsManager_OnEventRemoved;
 }
Esempio n. 22
0
 public EventBusRabbitMQ(IOptions <AppSettings> settings, IEventBusSubscriptionsManager subscriptionManager)
 {
     _appSettings         = settings;
     _subscriptionManager = subscriptionManager;
 }
Esempio n. 23
0
 public InsideEventQueueProvider(IEventBusSubscriptionsManager subsManager
                                 , ILogger <InsideEventQueueProvider> logger)
 {
     _subsManager = subsManager ?? throw new ArgumentNullException(nameof(subsManager));
     _logger      = logger ?? throw new ArgumentNullException(nameof(logger));
 }
Esempio n. 24
0
 public DefultIntergrationEventSubscriberService(IEventBusSubscriptionsManager manager, IServiceProvider serviceProvider, IContentSerializer serializer)
 {
     _subsManager     = manager;
     _serviceProvider = serviceProvider;
     _serializer      = serializer;
 }
 public EventBusMemoryQueue(IServiceProvider serviceProvider, IEventBusSubscriptionsManager subsManager)
 {
     _serviceProvider = serviceProvider;
     _subsManager     = subsManager;
 }
Esempio n. 26
0
 public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, IEventBusSubscriptionsManager subsManager, IMediator mediator)
 {
     _mediator             = mediator;
     _subsManager          = subsManager;
     _persistentConnection = persistentConnection;
 }
Esempio n. 27
0
 public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IEventBusSubscriptionsManager subsManager)
 {
     _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
     _logger                      = logger ?? throw new ArgumentNullException(nameof(logger));
     _subsManager                 = subsManager ?? new InMemoryEventBusSubscriptionsManager();
     _consumerChannel             = CreateConsumerChannel();
     _subsManager.OnEventRemoved += SubsManager_OnEventRemoved;
 }
Esempio n. 28
0
 public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IEventBusSubscriptionsManager subsManager, string exchange = null, string queueName = null, int retryCount = 5)
 {
     _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
     _logger      = logger ?? throw new ArgumentNullException(nameof(logger));
     _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager();
     _exchange    = exchange;
     _queueName   = queueName;
     _subsManager.OnEventRemoved += SubsManager_OnEventRemoved;
     _retryCount = retryCount;
 }
Esempio n. 29
0
 public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IEventBusSubscriptionsManager subsManager)
 {
     BROKER_NAME       = AppConfig.BrokerName;
     _messageTTL       = AppConfig.MessageTTL;
     _retryCount       = AppConfig.RetryCount;
     _prefetchCount    = AppConfig.PrefetchCount;
     _rollbackCount    = AppConfig.FailCount;
     _consumerChannels = new Dictionary <Tuple <string, QueueConsumerMode>, IModel>();
     _exchanges        = new Dictionary <QueueConsumerMode, string>();
     _exchanges.Add(QueueConsumerMode.Normal, BROKER_NAME);
     _exchanges.Add(QueueConsumerMode.Retry, $"{BROKER_NAME}@{QueueConsumerMode.Retry.ToString()}");
     _exchanges.Add(QueueConsumerMode.Fail, $"{BROKER_NAME}@{QueueConsumerMode.Fail.ToString()}");
     _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
     _logger      = logger ?? throw new ArgumentNullException(nameof(logger));
     _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager();
     _persistentConnection.OnRabbitConnectionShutdown += PersistentConnection_OnEventShutDown;
     _subsManager.OnEventRemoved += SubsManager_OnEventRemoved;
 }
Esempio n. 30
0
 private static void RegisterEventBus(IEventBusSubscriptionsManager eventBus)
 {
     eventBus.AddSubscription <CarNotificationEventData, DriverHandler> ();
 }