2.手動(dòng)確認(rèn)消費(fèi)
channel.BasicConsume(queue: "",
autoAck: true,//自動(dòng)消息確認(rèn) ,如果設(shè)置為false,會(huì)導(dǎo)致消息重復(fù)消費(fèi)
consumer: consumer
);
———————————————————— 手動(dòng)確認(rèn)機(jī)制
//1. 創(chuàng)建工廠
var factory = new ConnectionFactory()
{
HostName = "127.0.0.1",
Port = 5672,
UserName = "guest",
Password = "guest",
VirtualHost = "/"
};
//創(chuàng)建連接
var connection = factory.CreateConnection();
//創(chuàng)建通道
var channel = connection.CreateModel();
//定義隊(duì)列
channel.QueueDeclare(queue: "create-PlanInfo",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null
);
//創(chuàng)建 事件基本消費(fèi)者
var consumer = new EventingBasicConsumer(channel);
//接收到消息事件
consumer.Received += (model, ea) =>
{
var message = Encoding.UTF8.GetString(ea.Body.ToArray());
Console.WriteLine($"客戶消費(fèi)者 預(yù)定: {message}");
{
//.....業(yè)務(wù)邏輯代碼
}
//自動(dòng)確認(rèn)的機(jī)制缺陷
channel.BasicAck(ea.DeliveryTag, true);
};
channel.BasicConsume(queue: "",
autoAck: false,//自動(dòng)消息確認(rèn) ,如果設(shè)置為false,會(huì)導(dǎo)致消息重復(fù)消費(fèi) ,那么就需要手動(dòng)確認(rèn)
consumer: consumer
);

浙公網(wǎng)安備 33010602011771號(hào)