msg_send
メッセージキューにメッセージを送信する
&reftitle.description;
boolmsg_send
SysvMessageQueuequeue
intmessage_type
stringintfloatboolmessage
boolserialize&true;
boolblocking&true;
interror_code&null;
msg_send は、queue
で指定したメッセージキューに対して message_type
で指定した型 (0 より大きい数値である必要があります) のメッセージ
message を送信します。
&reftitle.parameters;
queue
メッセージキュー
message_type
メッセージのタイプ (0より大きい数値でなければいけません)
message
メッセージの本体
serialize が &false; に設定された場合、
この値は string, int, float
または bool のいずれかでなければなりません。
それら以外の場合、警告が発生します。
serialize
オプションのパラメータ serialize は、
message を送信する方法を制御します。
serialize のデフォルト値は &true; で、
この場合 message が送信される前に
セッションモジュールと同じ方法でシリアライズされます。
これにより、配列やオブジェクトのような複雑な形式のデータを
他の PHP スクリプトに送信することが可能となります。
また、もし WDDX シリアライザを使用しているなら、あらゆる WDDX
互換クライアントに対して同じことが可能となります。
blocking
メッセージがキューに収まらないほど大きい場合は、他のプロセスが
現在キューにあるメッセージを読み込んでキューの空き容量が確保されるまで
スクリプトの実行を待ち続けます。これをブロックモードといいます。
オプションのパラメータ blocking
を &false; に設定することでブロックモードではなくすることが可能で、
この場合、もしキューの空き容量よりも大きなメッセージを送信すると
msg_send はすぐに &false; を返します。
また、オプションのパラメータ error_code
を MSG_EAGAIN に設定すると、
少し時間をおいてメッセージを再度送信しなければならないことが戻り値からわかります。
error_code
この関数の実行が失敗した場合、オプションのエラーコードがシステムの errno 変数の値に設定されます。
&reftitle.returnvalues;
&return.success;
処理が正常に完了すると、メッセージキューデータ構造体は以下のように更新されます。
msg_lspid には呼び出し元のプロセス ID が
設定され、msg_qnum が 1 増加し、
msg_stime が現在の時刻に設定されます。
&reftitle.changelog;
&Version;
&Description;
8.0.0
引数 queue は、
SysvMessageQueue のインスタンスを期待するようになりました。
これより前のバージョンでは、リソースが期待されていました。
&reftitle.seealso;
msg_remove_queue
msg_receive
msg_stat_queue
msg_set_queue