Beispiel #1
0
        public RabbitHandler(ILogger <RabbitHandler> logger, IOptions <RabitMqOption> rabbitMqOption, IConfiguration configuration)
        {
            _logger        = logger;
            _configuration = configuration;
            _rabitMqOption = rabbitMqOption?.Value;
            if (_rabitMqOption == null)
            {
                _rabitMqOption = new RabitMqOption();
            }

            UpdateFromEnv(_rabitMqOption);

            if (string.IsNullOrEmpty(_rabitMqOption.Host) || string.IsNullOrEmpty(_rabitMqOption.UserName) ||
                string.IsNullOrEmpty(_rabitMqOption.Password) || _rabitMqOption.Port < 1)
            {
                throw new ArgumentNullException("Rabbit param in appsettings.json is not correct!");
            }

            try
            {
                _produceRabbitMq = new RabitMqProduce(_rabitMqOption);
                _logger.LogInformation("rabbit produce client start success!");
            }
            catch (Exception e)
            {
                logger.LogInformation(e, "rabbit produce client start err!");
                throw;
            }
        }
Beispiel #2
0
        public ConsumeService(RabitMqOption config, string dbtable, IDbTransfer dbTypeMapper) : base(config)
        {
            _dbTypeMapper = dbTypeMapper;
            var queueName = !string.IsNullOrEmpty(config.CanalDestinationName) ? $"{config.CanalDestinationName}." : "";

            queueName += dbtable;
            base.Queues.Add(new QueueInfo()
            {
                ExchangeType = ExchangeType.Direct,
                Queue        = queueName,
                RouterKey    = queueName,
                OnReceived   = this.OnReceived,
            });
        }
Beispiel #3
0
        private void UpdateFromEnv(RabitMqOption _rab)
        {
            var host = _configuration["rabbit.address"];

            if (!string.IsNullOrEmpty(host))
            {
                _rab.Host = host.Split(':')[0];
                _rab.Port = int.Parse(host.Split(':')[1]);
            }

            var virtualHost = _configuration["rabbit.virtualHost"];

            if (!string.IsNullOrEmpty(virtualHost))
            {
                _rab.VirtualHost = virtualHost;
            }

            var userName = _configuration["rabbit.userName"];

            if (!string.IsNullOrEmpty(userName))
            {
                _rab.UserName = userName;
            }

            var password = _configuration["rabbit.password"];

            if (!string.IsNullOrEmpty(password))
            {
                _rab.Password = password;
            }

            var dbTables = _configuration["rabbit.dbTables"];

            if (!string.IsNullOrEmpty(dbTables))
            {
                _rab.DbTables = dbTables.Split(':').ToList();
            }

            var confirmSelect = _configuration["canal.confirmSelect"];

            if (!string.IsNullOrEmpty(confirmSelect))
            {
                _rab.ConfirmSelect = confirmSelect.Equals("true") || confirmSelect.Equals("1");
            }
        }
Beispiel #4
0
        private void UpdateFromEnv(RabitMqOption _rab)
        {
            var host = _configuration["rabbit.address"];

            if (!string.IsNullOrEmpty(host))
            {
                _rab.Host = host.Split(':')[0];
                _rab.Port = int.Parse(host.Split(':')[1]);
            }

            var virtualHost = _configuration["rabbit.virtualHost"];

            if (!string.IsNullOrEmpty(virtualHost))
            {
                _rab.VirtualHost = virtualHost;
            }

            var userName = _configuration["rabbit.userName"];

            if (!string.IsNullOrEmpty(userName))
            {
                _rab.UserName = userName;
            }

            var password = _configuration["rabbit.password"];

            if (!string.IsNullOrEmpty(password))
            {
                _rab.Password = password;
            }
            var destinations = _configuration["canal.destinations"];

            if (!string.IsNullOrEmpty(destinations))
            {
                _rab.CanalDestinationName = destinations;
            }

            var dbTables = _configuration["rabbit.dbTables"];

            if (!string.IsNullOrEmpty(dbTables))
            {
                _rab.DbTables = dbTables.Split(':').ToList();
            }
        }
Beispiel #5
0
        public ConsumerService(ILogger <ConsumerService> logger, IOptions <RabitMqOption> rabitMqOption, IConfiguration configuration, IDbTransfer dbTypeMapper)
        {
            _logger        = logger;
            _configuration = configuration;
            _dbTypeMapper  = dbTypeMapper;
            _rabitMqOption = rabitMqOption.Value;
            if (_rabitMqOption == null)
            {
                _rabitMqOption = new RabitMqOption();
            }

            UpdateFromEnv(_rabitMqOption);

            if (string.IsNullOrEmpty(_rabitMqOption.Host) || string.IsNullOrEmpty(_rabitMqOption.UserName) ||
                string.IsNullOrEmpty(_rabitMqOption.Password) || _rabitMqOption.Port < 1 || string.IsNullOrEmpty(_rabitMqOption.CanalDestinationName))
            {
                throw new ArgumentNullException("Rabit param in appsettings.json is not correct!");
            }

            if (!_rabitMqOption.DbTables.Any())
            {
                throw new ArgumentNullException("no dbTables exist in appsettings.json !");
            }
        }
Beispiel #6
0
 public MQConnection(RabitMqOption config, string vhost)
 {
     this.config = config;
     this.vhost  = vhost;
 }
Beispiel #7
0
 internal MQServiceBase(RabitMqOption config)
 {
     this.Config = config;
 }