(PHP 4 >= 4.3.0, PHP 5, PHP 7)
msg_send — Отправка сообщения в очередь сообщений
$queue
, int $msgtype
, mixed $message
[, bool $serialize
= TRUE
[, bool $blocking
= TRUE
[, int &$errorcode
]]] ) : bool
msg_send() отправляет сообщение message
с типом msgtype
(должно быть больше 0) в очередь сообщений,
указанную параметром queue
.
queue
Идентификатор ресурса очереди.
msgtype
Тип сообщения. Должно быть больше 0.
message
Тело сообщения.
Замечание:
Если
serialize
задано какFALSE
, ДОЛЖНО быть типа: string, integer, float или bool. Иначе будет выведено предупреждение.
serialize
Необязательный параметр serialize
управляет тем,
как будет отправлено сообщение message
.
По умолчанию serialize
имеет значение TRUE
,
что означает сериализацию message
перед отправкой тем же
механизмом, который используется модулем обработки сессий.
Это позволяет отправлять сложные массивы и объекты в другие PHP-скрипты,
или, если вы используете сериализацию WDDX, в другие совместимые с WDDX клиенты.
blocking
Если помещаемое в очередь сообщение слишком велико, ваш скрипт будет ожидать
прочтения сообщений другим процессом и освобождения места под отправляемое вами
сообщение.
Это называется блокировкой; вы можете отключить эту возможность,
установив для blocking
значение FALSE
, в этом случае
msg_send() будет немедленно возвращать FALSE
если сообщение
слишком велико, и устанавливать необязательный параметр errorcode
в значение MSG_EAGAIN
, что будет указывать вам на
необходимость попробовать отправить сообщение несколько позже.
errorcode
Если функция отработает неудачно, то этот код будет записан в системную переменную errno.
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
При успешном завершении структура данных очереди сообщений обновится следующим образом:
msg_lspid
будет содержать идентификатор вызвавшего процесса,
msg_qnum
увеличится на 1,
а msg_stime
будет содержать текущее время.