/// <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); } }
public virtual void Stop() { if (MqChannel == null) { return; } MqChannel.Dispose(); MqConnection.SafeDispose(); }
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(); }
public Task StartAsync <TContext>(IHttpApplication <TContext> application, CancellationToken cancellationToken) { return(Task.Run(() => { var connectionFactory = new ConnectionFactory() { DispatchConsumersAsync = true, AutomaticRecoveryEnabled = false, TopologyRecoveryEnabled = false, //VirtualHost = "testvhost", }; var connection = connectionFactory.CreateConnection(); var model = connection.CreateModel(); var queueDeclareResult = model.QueueDeclare(queue: _queueName, durable: true, exclusive: false, autoDelete: false); var mqConnection = new MqConnection(connection, model, connectionFactory.VirtualHost); var serverContextFactory = new MqRequestServerContextFactory(Features); var requestProcessor = new MqRequestProcessor <TContext>(serverContextFactory, _loggerFactory.CreateLogger <MqRequestProcessor>(), application); var consumer = new MqConsumer(mqConnection, requestProcessor); model.BasicConsume(_queueName, autoAck: false, consumer: consumer); })); }
protected BaseProducer(MqConnection connectionManager, ILogger logger, ISerializer <TMessage> serializer) { _currentProducer = connectionManager.CreateProducer(logger, serializer); }
protected BaseDistributedProducer(MqConnection connectionManager, ILogger logger, ISerializer <TMessage> serializer, DistributedProducerConfig config) { _currentProducer = connectionManager.CreateDistributedProducer(logger, serializer, config); }
protected BaseConsumer(MqConnection connection, ILogger logger, ISerializer <TMessage> serializer) { _currentConsumer = connection.CreateConsumer(logger, serializer, ProcMessage); }