Esempio n. 1
0
 /// <summary>
 /// 通过MQ发送消息
 /// </summary>
 /// <param name="message"></param>
 public void SendMessageByMQ(T message)
 {
     try
     {
         if (MqConnection == null)
         {
             InitConnection();
             throw new Exception($"{nameof(SendMessageByMQ)}:未获取到 MQ 连接!");
         }
         if (channel == null)
         {
             channel = MqConnection.CreateModel();
         }
         if (IsCreateExchange)
         {
             channel.ExchangeDeclare(ExchangeName, ExchangeType, true);
         }
         var msg  = JsonConvert.SerializeObject(message);
         var body = Encoding.UTF8.GetBytes(msg);
         //发送信息
         channel.BasicPublish(ExchangeName, RoutingKey, null, body);
     }
     catch (Exception e)
     {
         throw new Exception("MQ 发送消息失败!", e);
     }
 }
        private void CreateConnectionAndSubscriberChannel()
        {
            var factory = new ConnectionFactory
            {
                AutomaticRecoveryEnabled = true,
                TopologyRecoveryEnabled  = false,
                RequestedHeartbeat       = 30 // seconds
            };

            factory.InjectFrom(_subscriberConfig);

            MqConnection = factory.CreateConnection();
            //MqConnection.ConnectionShutdown += HandleMqConnectionShutdown;
            MqChannel = MqConnection.CreateModel();
        }