/// <summary>
        ///  接收消息
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queueInfo"></param>
        /// <param name="handler"></param>
        public IModel ReceiveMessage <T>(RabbitMqQueueModel queueInfo, Func <T, CancellationToken, Task> handler)
        {
            if (queueInfo == null)
            {
                throw new ArgumentException("消息上不具有任何特性");
            }
            if (handler == null)
            {
                throw new NullReferenceException("处理事件为null");
            }
            var channel = GetOrAddModel(queueInfo.ExchangeName, queueInfo.QueueName, queueInfo.RouteKey,
                                        queueInfo.ExchangeType, queueInfo.Durable);

            channel.BasicQos(0, 1, false);
            var consumer = new EventingBasicConsumer(channel);

            channel.BasicConsume(queueInfo.QueueName, false, consumer);
            consumer.Received += async(model, ea) => { await _doAsync(channel, ea, handler); };
            return(channel);
        }
        /// <summary>
        /// 发送消息
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="messageObj"></param>
        /// <param name="queueInfo"></param>
        public void SendMessage <T>(T messageObj, RabbitMqQueueModel queueInfo) where T : class
        {
            if (queueInfo == null)
            {
                throw new ArgumentException("消息上不具有任何特性");
            }
            var channel = GetOrAddModel(queueInfo.ExchangeName, queueInfo.QueueName, queueInfo.RouteKey,
                                        queueInfo.ExchangeType, queueInfo.Durable);
            var properties = channel.CreateBasicProperties();

            properties.DeliveryMode = 2;
            channel.ConfirmSelect();
            var body = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(messageObj));

            channel.BasicPublish(queueInfo.ExchangeName, queueInfo.RouteKey, properties, body);
            bool isOk = channel.WaitForConfirms();

            if (!isOk)
            {
                _logger.LogError("发布消息至对列确认失败。队列内容:{0}", JsonSerializer.Serialize(messageObj));
            }
        }