Example #1
0
 public PublishQueueExecutor(
     ConnectionPool connectionPool,
     RabbitMQOptions rabbitMQOptions,
     ILogger logger)
 {
     _logger          = logger;
     _connectionPool  = connectionPool;
     _rabbitMQOptions = rabbitMQOptions;
 }
Example #2
0
 public QueueOperation(ILogger logger, ConnectionPool connectionPool, RabbitMQOptions rabbitMQOptions, IQueueOperationSubscriptionsManager subsManager, PublishQueueExecutor publishQueueExecutor)
 {
     _logger      = logger;
     _subsManager = subsManager ?? new InMemorySubscriptionsManager();
     _subsManager.OnEventRemoved += SubsManager_OnEventRemoved;
     _publishQueueExecutor        = publishQueueExecutor;
     _connectionPool              = connectionPool;
     _rabbitMQOptions             = rabbitMQOptions;
 }
Example #3
0
        public static IServiceCollection AddRabbitMQServices(this IServiceCollection services)
        {
            var options = new RabbitMQOptions();

            services.AddSingleton(options);

            services.AddSingleton <ConnectionPool>();
            services.AddSingleton <PublishQueueExecutor>();
            services.AddScoped <IQueueOperationSubscriptionsManager, InMemorySubscriptionsManager>();
            return(services.AddSingleton <IQueueOperation, QueueOperation>());
        }
Example #4
0
        //public ProcessEvent _processEvent;

        public RabbitMQConsumerClient(string exchageName, string queueName, string responseQueueName, bool needResponse,
                                      ConnectionPool connectionPool,
                                      RabbitMQOptions options, ILogger logger)//, ProcessEvent processEvent
        {
            _queueName         = queueName;
            _responseQueueName = responseQueueName;
            _needResponse      = needResponse;
            _connectionPool    = connectionPool;
            _rabbitMQOptions   = options;
            _exchageName       = exchageName ?? options.TopicExchangeName;
            //_processEvent = processEvent;
            _logger = logger;
            InitClient();
        }
Example #5
0
        private static Func <IConnection> CreateActivator(RabbitMQOptions options)
        {
            var factory = new ConnectionFactory()
            {
                HostName    = options.HostName,
                UserName    = options.UserName,
                Port        = options.Port,
                Password    = options.Password,
                VirtualHost = options.VirtualHost,
                RequestedConnectionTimeout = options.RequestedConnectionTimeout,
                SocketReadTimeout          = options.SocketReadTimeout,
                SocketWriteTimeout         = options.SocketWriteTimeout
            };

            return(() => factory.CreateConnection());
        }
Example #6
0
        public ConnectionPool(RabbitMQOptions options)
        {
            _maxSize = DefaultPoolSize;

            _activator = CreateActivator(options);
        }