标签:public odi getc 管理 文章 app lse write 参数
上篇文章讲了声明一个队列时的参数设置,这篇文章主要说一说发布消息时的参数设置.
发布消息时的完整入参是这样的:
channel.BasicPublish ( exchange: "test_exchange", routingKey: "", mandatory: false, basicProperties: null, body: Encoding.Default.GetBytes(msg) );
下面一一解释:
路由键的设置跟交换机的类型有关.
测试:
生产者
public class Producer { private const string QueueName = "test_queue"; private const string ExchangeName = "test_exchange"; public static void Send() {
using (IConnection connection = ConnectionHelper.GetConnection()) using (IModel channel = connection.CreateModel()) { channel.BasicQos(0, 1, false);
channel.BasicReturn += (s, e) => { byte[] bytes = e.Body; string str = Encoding.Default.GetString(bytes); Console.WriteLine("return message : " + str); };
string msg = "hello world "; channel.BasicPublish ( exchange: ExchangeName, routingKey: "找不到匹配的队列", mandatory: true, basicProperties: null, body: Encoding.Default.GetBytes(msg) ); Console.WriteLine($"send {msg}"); } } }
运行结果:
该参数是一个 IBasicProperties 类型的对象,具体有哪些属性,我们可以看源代码,不过我觉得通过管理后台来了解这些参数,更直观一些.
实在是有点多啊!
有两个属性,persistent 和 DeliveryMode ,它们的作用是一样的.
Persistent : true 表示消息持久化.当然,前提是队列也必须持久化.
管理后台可以直接设置 DeliveryMode :
标签:public odi getc 管理 文章 app lse write 参数
原文地址:https://www.cnblogs.com/refuge/p/10355993.html