public void Pushed(RabbitRequest request, RabbitOption option, Action <ulong, bool> basicAckCall = null) { _basicAckCall = basicAckCall; var channel = Factory.CreatChannel(); option.DeclareQueue(channel); var properties = channel.CreateBasicProperties(); properties.Persistent = option.Durable; if (!option.AutoAck) { channel.ConfirmSelect(); channel.BasicAcks += Channel_BasicAcks; channel.BasicNacks += Channel_BasicNacks; } channel.BasicPublish(exchange: "", routingKey: option.RoutingKey, basicProperties: properties, body: request.GetData()); if (option.AutoAck) { channel.Close(); } }
public void Pushed(RabbitRequest request, RabbitOption option, Action <ulong, bool> basicAckCall = null) { if (option.ExchangeOption == null) { throw new ArgumentNullException("未指定交换机信息"); } var channel = Factory.CreatChannel(); _basicAckCall = basicAckCall; //声明队列 option.DeclareQueue(channel); //声明交换机 option.ExchangeDeclare(channel); //将交换机和队列绑定 option.BindQueue(channel); var properties = channel.CreateBasicProperties(); properties.Persistent = option.Durable; if (!option.AutoAck && _basicAckCall != null) { channel.BasicAcks += Channel_BasicAcks; channel.BasicNacks += Channel_BasicNacks; } channel.BasicPublish(exchange: option.ExchangeOption.ExchangeName, routingKey: option.RoutingKey, basicProperties: properties, body: request.GetData()); if (option.AutoAck) { channel.Close(); } }