/// <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(); }