PHP マニュアル
前のページ |  | 次のページ

# msg_send

(PHP 4 >= 4.3.0, PHP 5)

msg_send -- メッセージキューにメッセージを送信する

## 説明

bool msg_send ( resource queue, int msgtype, mixed message [, bool serialize [, bool blocking [, int &errorcode]]] )

msg_send() は、`queue` で指定したメッセージキューに対して `msgtype` で指定した型 (0 より大きい数値である必要があります) のメッセージ `message` を送信します。

メッセージがキューに収まらないほど大きい場合は、他のプロセスが 現在キューにあるメッセージを読み込んでキューの空き容量が確保されれまで スクリプトの実行を待ち続けます。この関数はブロックモードでコール されます。オプションのパラメータ `blocking` を `FALSE` に設定することでブロックモードではなくすることが可能で、 この場合、もしキューの空き容量よりも大きなメッセージを送信すると msg_send() はすぐに `FALSE` を返します。 また、オプションのパラメータ `errorcode` を `MSG_EAGAIN` に設定すると、 このような場合に少し時間をおいてメッセージを再度送信します。

オプションのパラメータ `serialize` は、 `message` を送信する方法を制御します。 `serialize` のデフォルト値は `TRUE` で、 この場合 `message` が送信される前に セッションモジュールと同じ方法でシリアライズされます。 これにより、配列やオブジェクトのような複雑な形式のデータを 他の PHP スクリプトに送信することが可能となります。 また、もし WDDX シリアライザを使用しているなら、あらゆる WDDX 互換クライアントに対して同じことが可能となります。

処理が正常に完了すると、メッセージキューデータ構造体は以下のように更新されます。 `msg_lspid` には呼び出し元のプロセス ID が 設定され、`msg_qnum` が 1 増加し、 `msg_stime` が現在の時刻に設定されます。

msg_remove_queue()、 msg_receive()、 msg_stat_queue() および msg_set_queue() も参照ください。

前のページ | ホーム | 次のページ
msg_remove_queue | 上に戻る | msg_set_queue