Jay*_*Jay 4 c# rabbitmq easynetq
我正在编写一个小应用程序,我正在使用RabbitMQ发送/接收消息.一切正常,但我正在努力解决消息持久性问题.
我希望即使在服务器重启中,消息仍保留在队列中.我理解交换和队列级别的持久性概念,并将它们设置为true(而不是默认为true).因此,当我重新启动RabbitMQ服务器时,交换和队列保持不变,但队列中的消息将被删除.
我正在使用EasyNetQ.IBus接口发送消息.
谢谢
使用RabbitMQ.Client,您可以使用IBasicProperties设置传递模式,可以使用IModel.CreateBasicProperties()方法获取.
using (IConnection conn = factory.CreateConnection())
using (IModel channel = conn.CreateModel())
{
channel.ExchangeDeclare(exchange, ExchangeType.Direct, durable: true);
channel.QueueDeclare(queue, durable: true, exclusive: false, autoDelete: false, arguments: null);
channel.QueueBind(queue, exchange, routingKey, null);
var props = channel.CreateBasicProperties();
props.DeliveryMode = 2;
channel.BasicPublish(exchange, routingKey, props, Encoding.Default.GetBytes(message));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1803 次 |
| 最近记录: |