msg_send
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
msg_send — Отправка сообщения в очередь сообщений
Описание
$queue
, int $message_type
, string|int|float|bool $message
, bool $serialize
= true
, bool $blocking
= true
, int &$error_code
= null
) : bool
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).
|
Смотрите также
- msg_remove_queue() - Удаление очереди сообщений
- msg_receive() - Получение сообщения из очереди сообщений
- msg_stat_queue() - Получение информации из структуры данных очереди сообщений
- msg_set_queue() - Установка информации в структуре данных очереди сообщений