【发布时间】:2014-06-10 22:12:38
【问题描述】:
我是 RabbitMQ 的新手,正在尝试写入队列并验证消息是否已发送。如果它失败了,我需要知道它。 我做了一个假队列来观察它失败,但无论我看到什么都没有异常,当我在寻找一个确认时,我总是得到一个。我从没见过 BasicNack。
我什至不确定我是否是 BasicAcks 是要走的路。
private void button1_Click(object sender, EventArgs e)
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
channel.QueueDeclare("task_queue", true, false, false, null);
var message = ("Helllo world");
var body = Encoding.UTF8.GetBytes(message);
channel.ConfirmSelect();
var properties = channel.CreateBasicProperties();
properties.SetPersistent(true);
properties.DeliveryMode = 2;
channel.BasicAcks += channel_BasicAcks;
channel.BasicNacks += channel_BasicNacks;
//fake queue should be task_queue
channel.BasicPublish("", "task_2queue", true, properties, body);
channel.WaitForConfirmsOrDie();
Console.WriteLine(" [x] Sent {0}", message);
}
}
}
void channel_BasicNacks(IModel model, BasicNackEventArgs args)
{
}
void channel_BasicAcks(IModel model, BasicAckEventArgs args)
{
}
【问题讨论】: