RabbitMQ筆記-basicConsume、basicCancel、basicPublish等方法詳解


basicConsume:

由服務端主動PUSH消息過來,方法接收到消息后進行處理

        string BasicConsume(string queue, bool autoAck, string consumerTag, bool noLocal, bool exclusive, IDictionary<string, object> arguments, IBasicConsumer consumer);

        public static string BasicConsume(this IModel model, IBasicConsumer consumer, string queue, bool autoAck = false, string consumerTag = "", bool noLocal = false, bool exclusive = false, IDictionary<string, object> arguments = null);

        public static string BasicConsume(this IModel model, string queue, bool autoAck, IBasicConsumer consumer);
 
        public static string BasicConsume(this IModel model, string queue, bool autoAck, string consumerTag, IBasicConsumer consumer);
 
        public static string BasicConsume(this IModel model, string queue, bool autoAck, string consumerTag, IDictionary<string, object> arguments, IBasicConsumer consumer);

basicConsume方法參數說明:

queue:隊列名
autoAck:是否自動回復Ack
consumerTag:消費者標識
arguments:其他參數,比如可以設置消費者優先級(x-priority)等參數
noLocal:如果服務器不應將在此通道連接上發布的消息傳遞給此使用者,則為true
exclusive:
IBasicConsumer:

basicGet:

主動拉取隊列中的一條消息

BasicGetResult basicGet(String queue, boolean autoAck)
        /**
         * 從消息隊列中取出第一條消息;整個方法的執行過程是首先消費隊列,然后檢索第一條消息,然后再取消訂閱
         */
        var result = channel.basicGet(QUEUE_NAME, true);

basicCancel

取消消費者訂閱

/**
* 取消消費者對隊列的訂閱關系
* consumerTag:服務器端生成的消費者標識
**/
void basicCancel(String consumerTag)

BasicPublish

發送消息

void BasicPublish(string exchange, string routingKey, bool mandatory, IBasicProperties basicProperties, byte[] body);
void BasicPublish(this IModel model, PublicationAddress addr, IBasicProperties basicProperties, byte[] body);
void BasicPublish(this IModel model, string exchange, string routingKey, IBasicProperties basicProperties, byte[] body);
void BasicPublish(this IModel model, string exchange, string routingKey, bool mandatory = false, IBasicProperties basicProperties = null, byte[] body = null);

BasicPublish方法參數:

  • exchange:要將消息發送到的Exchange(交換器)
  • routingKey:路由Key
  • mandatory:如果為true, 消息不能路由到指定的隊列時,會觸發channel.BasicReturn事件,如果為false,則broker會直接將消息丟棄。(channel.BasicReturn += Channel_BasicReturn;)
  • basicProperties:其它的一些屬性
  • body:消息內


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM