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() - Установка информации в структуре данных очереди сообщений