private void ReceiveMessage(MqQueueName queueName, Action<string> action)
        {
            IModel channel = null;
            try
            {
                if (_connection == null || !_connection.IsOpen)
                    NewConnection();

                //创建通道
                channel = _connection.CreateModel();

                //创建队列
                channel.QueueDeclare(queueName.ToString(), true, false, false, null);

                channel.BasicQos(0, 1, false);
                var consumer = new QueueingBasicConsumer(channel);
                channel.BasicConsume(queueName.ToString(), false, consumer);

                while (true)
                {
                    string message = "";
                    try
                    {
                        var ea = consumer.Queue.Dequeue();
                        message = Encoding.UTF8.GetString(ea.Body);
                        //处理消息
                        action(message);
                        //发送确认回执
                        channel.BasicAck(ea.DeliveryTag, false);
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Fatal("RabbitMQ消费者处理消息失败。消息内容:" + queueName + "," + message, ex);
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Fatal("RabbitMQ接收和解析消息失败。", ex);
            }
            finally
            {
                if (channel != null)
                {
                    channel.Close();
                }
            }
        }