/// <summary>
 /// 消费消息
 /// </summary>
 /// <returns></returns>
 public void GetMessage()
 {
     Task.Factory.StartNew(() =>
     {
         try
         {
             using (connection = RabbitMQCore.connectionFactory.CreateConnection())
             {
                 using (IModel channel = connection.CreateModel())
                 {
                     channel.QueueDeclare(queue: RabbitMQCore.QueueName, durable: true, exclusive: false, autoDelete: false, arguments: null);
                     channel.BasicQos(0, 1, false);                      //公平分发 为了改变这一状态,我们可以使用basicQos方法,设置perfetchCount=1 。这样就告诉RabbitMQ 不要在同一时间给一个工作者发送多于1个的消息
                     var consumer       = new EventingBasicConsumer(channel);
                     consumer.Received += RabbitMQCore.ConsumerReceived; //接收到消息执行操作
                     consumer.Received += (model, ea) =>
                     {
                         channel.BasicAck(ea.DeliveryTag, false);//返回ACK
                     };
                     channel.BasicConsume(queue: RabbitMQCore.QueueName, autoAck: false, consumer: consumer);
                     while (true)//让消息一直连接
                     {
                         Thread.Sleep(1000);
                     }
                 }
             }
         }
         catch (Exception)
         {
             if (!RabbitMQCore.IsConnected)
             {
                 RabbitMQCore.TryConnect();
             }
         }
     });
 }
 /// <summary>
 /// 发送消息
 /// </summary>
 /// <param name="message">消息</param>
 /// <param name="persistent">是否持久化</param>
 public void SendMessage(string message, bool persistent = true)
 {
     try
     {
         using (connection = RabbitMQCore.connectionFactory.CreateConnection())
         {
             using (IModel channel = connection.CreateModel())
             {
                 var props = channel.CreateBasicProperties();
                 if (persistent == true)
                 {
                     props.Persistent = true;//持久化到硬盘
                 }
                 var messageBody = Encoding.UTF8.GetBytes(message);
                 channel.BasicPublish(exchange: RabbitMQCore.ExchangName, routingKey: RabbitMQCore.QueueName, basicProperties: props, body: messageBody);
             }
         }
     }
     catch (Exception)
     {
         if (!RabbitMQCore.IsConnected)
         {
             RabbitMQCore.TryConnect();
         }
     }
 }