RabbitMQ exchange
阿新 • • 發佈:2018-12-30
1.建立或者宣告一個exchange
/**
* amqp_exchange_declare
*
* @param [in] connect連線 amqp_new_connection獲取
* @param [in] channel the channel to do the RPC on,程式自己設定一個通道號,一個連線可以多個通道號。
* @param [in] exchange 指定exchange名稱 eg:amqp_cstring_bytes("exchange_cat")
* @param [in] type 指定exchange型別,amqp_cstring_bytes("direct" )
* "fanout" 廣播的方式,傳送到該exchange的所有佇列上。
* "direct" 通過路由鍵傳送到指定的佇列上。
* "topic" 通過匹配路由鍵的方式獲取,使用萬用字元*,#
* @param [in] passive 檢測exchange是否存在,設為true,若佇列存在則命令成功返回(呼叫其他引數不會影響exchange屬性),若不存在不會建立exchange,返回錯誤。設為false,如果exchange不存在則建立exchange,呼叫成功返回。如果exchange已經存在,並且匹配現在exchange的話則成功返回,如果不匹配則exchange宣告失敗。
* @param [in] durable 佇列是否持久化
* @param [in] auto_delete 連線斷開的時候,exchange是否自動刪除
* @param [in] internal internal
* @param [in] arguments arguments
* @returns amqp_exchange_declare_ok_t
*/
AMQP_PUBLIC_FUNCTION
amqp_exchange_declare_ok_t *
AMQP_CALL amqp_exchange_declare(amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t exchange, amqp_bytes_t type, amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t auto_delete, amqp_boolean_t internal, amqp_table_t arguments);
呼叫函式之後,使用amqp_get_rpc_reply(conn)來獲取呼叫結果。
amqp_exchange_declare(conn, 1, amqp_cstring_bytes("exchange_cat"), amqp_cstring_bytes("direct"), 0, 1, 0,0, amqp_empty_table);
die_on_amqp_error(amqp_get_rpc_reply(conn), "Declaring exchange");