(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
msg_send — Отправка сообщения в очередь сообщений
$queue
,$message_type
,$message
,$serialize
= true
,$blocking
= true
,&$error_code
= null
msg_send() отправляет сообщение message
с типом message_type
(должно быть больше 0) в очередь сообщений,
указанную параметром queue
.
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.
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
При успешном завершении структура данных очереди сообщений обновится следующим образом:
msg_lspid
будет содержать идентификатор вызвавшего процесса,
msg_qnum
увеличится на 1,
а msg_stime
будет содержать текущее время.
Версия | Описание |
---|---|
8.0.0 |
Параметр queue теперь ожидает экземпляр SysvMessageQueue;
ранее ожидался ресурс (resource).
|