to send custom headers, you need send it as associative array under attribute 'headers'
AMQPExchange::publish
(PECL amqp >= Unknown)
AMQPExchange::publish — メッセージを exchange に発行する
説明
public bool AMQPExchange::publish
( string
$message
, string $routing_key
[, int $flags = AMQP_NOPARAM
[, array $attributes = array()
]] )AMQPExchange オブジェクトがあらわす exchange にメッセージを発行します。
パラメータ
-
message -
公開するメッセージ。
-
routing_key -
公開先へのルーティングキー。
-
flags -
AMQP_MANDATORYおよびAMQP_IMMEDIATEのひとつ以上。 -
attributes -
サポートするインデックス キー 説明 デフォルト値 content_type text/plain content_encoding NULL message_id NULL user_id NULL app_id NULL delivery_mode NULL priority NULL timestamp NULL expiration NULL type NULL reply_to NULL
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
エラー / 例外
失敗した場合に AMQPExchangeException をスローします。
チャネルが開いていない場合に AMQPChannelException をスローします。
ブローカへの接続が途切れた場合に AMQPConnectionException をスローします。
Andy (Larest) ¶
5 months ago
glenjamin at gmail dot com ¶
1 year ago
Any unused attributes will be assigned as custom headers attached to the outgoing message's headers collection.
This isn't exactly clear from the documentation above, but I've checked the C source, and that's how you set custom headers.
prudkiy at mail dot ru ¶
1 year ago
Please note, here no way to be sure if message really published
The use of flags AMQP_MANDATORY and AMQP_IMMEDIATE not force to return any errors (in case if queue not exists etc) and "publish" returns TRUE anyway
