msg_send
(PHP 4 >= 4.3.0, PHP 5)
msg_send — メッセージキューにメッセージを送信する
説明
$queue
, int $msgtype
, mixed $message
[, bool $serialize = true
[, bool $blocking = true
[, int &$errorcode
]]] )
msg_send() は、queue
で指定したメッセージキューに対して msgtype
で指定した型 (0 より大きい数値である必要があります) のメッセージ
message を送信します。
パラメータ
-
queue -
-
msgtype -
-
message -
-
serialize -
オプションのパラメータ
serializeは、messageを送信する方法を制御します。serializeのデフォルト値はTRUEで、 この場合messageが送信される前に セッションモジュールと同じ方法でシリアライズされます。 これにより、配列やオブジェクトのような複雑な形式のデータを 他の PHP スクリプトに送信することが可能となります。 また、もし WDDX シリアライザを使用しているなら、あらゆる WDDX 互換クライアントに対して同じことが可能となります。 -
blocking -
メッセージがキューに収まらないほど大きい場合は、他のプロセスが 現在キューにあるメッセージを読み込んでキューの空き容量が確保されるまで スクリプトの実行を待ち続けます。これをブロックモードといいます。 オプションのパラメータ
blockingをFALSEに設定することでブロックモードではなくすることが可能で、 この場合、もしキューの空き容量よりも大きなメッセージを送信すると msg_send() はすぐにFALSEを返します。 また、オプションのパラメータerrorcodeをMSG_EAGAINに設定すると、 少し時間をおいてメッセージを再度送信しなければならないことが戻り値からわかります。 -
errorcode -
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
処理が正常に完了すると、メッセージキューデータ構造体は以下のように更新されます。
msg_lspid には呼び出し元のプロセス ID が
設定され、msg_qnum が 1 増加し、
msg_stime が現在の時刻に設定されます。
参考
- msg_remove_queue() - メッセージキューを破棄する
- msg_receive() - メッセージキューからメッセージを受信する
- msg_stat_queue() - メッセージキューデータ構造体の情報を返す
- msg_set_queue() - メッセージキューデータ構造体の情報を設定する