Учебник PHP

         

msg_send

(только PHP 4 CVS)

msg_send - отправляет сообщение в очередь сообщений.

Описание

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

msg_send() отправляет сообщение message типа msgtype (который ОБЯЗАН быть больше 0) в очередь сообщений queue.

Если сообщение слишком большое, чтобы вместиться в очередь, ваш скрипт будет ожидать, пока другой процесс не прочтёт сообщения из очереди и не освободит достаточно пространства для пересылки вашего сообщения. Это называется блокировкой; вы можете предотвратить блокировку, установив необязательный параметр blocking в FALSE; в этом случае msg_send() немедленно возвратит FALSE, если сообщение слишком велико для очереди, и установит необязательный errorcode в EAGAIN, указывая на то, что вы должны попытаться отправить сообщение снова немного позднее.

Необязательный параметр serialize контролирует то, как сообщение message отправляется. serialize по умолчанию имеет значение TRUE, т.е. message сериализуется с использованием того же механизма, что и в модуле сессии, перед отправкой в очередь. Это позволяет отправлять сложные массивы и объекты другим PHP-скриптам или, если вы используете WDDX-сериализатор, - любому WDDX-совместимому клиенту.

При успешном выполнении структура очереди сообщений обновляется так: в msg_lspid устанавливается process-ID вызывающего  процесса, msg_qnum увеличивается на 1, а в msg_stime устанавливается текущее время.

См. также msg_remove_queue(), msg_receive(), msg_stat_queue() и msg_set_queue().

Эта функция была введена в PHP 4.3.0.

Содержание раздела