RabbitMQ持久化+訊息執行優先順序
阿新 • • 發佈:2022-04-10
持久化
channel.QueueDeclare(queue:"hello",//佇列名
durable:true,//持久化
exclusive:false,//排他性,該佇列僅對首次申明他的連線可見,並在連線斷開時,自動刪除
autoDelete:false,// 如果改佇列沒有任何訂閱訊息,該佇列自動刪除
arguments:null// 如果安裝了佇列優先順序外掛,可以設定優先順序
)
channel.ExchangeDeclare(exchange:"MyExchange"........)
channel.QueueBind(“hello”,"MyExchange","",arguments:null)
通過 佇列和Exchage 繫結 可以實現 佇列持久化
IBasicProperties pp=channel.CreateBsicProperties();
pp.Persistent=true;
訊息持久化
優先順序
channel.QueueDeclare(queue:"hello",//佇列名
durable:true,//持久化
exclusive:false,//排他性,該佇列僅對首次申明他的連線可見,並在連線斷開時,自動刪除
autoDelete:false,// 如果改佇列沒有任何訂閱訊息,該佇列自動刪除
arguments:new Dictionary<string,object>{"x-max-priority",10} // 如果安裝了佇列優先順序外掛,可以設定優先順序
)
IBasicProperties pp=channel.CreateBsicProperties();
pp.Persistent=true;
pp.Priority=2; 設定訊息優先級別 ,值越高,越先被消費