msg_send

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_sendEnvía un mensaje a una cola

Descripción

msg_send(
    SysvMessageQueue $queue,
    int $message_type,
    string|int|float|bool $message,
    bool $serialize = true,
    bool $blocking = true,
    int &$error_code = null
): bool

msg_send() envía el mensaje message de tipo message_type (que DEBE ser mayor que 0) a la cola de mensajes identificada por queue.

Parámetros

queue

La cola de mensajes

message_type

El tipo del mensaje (DEBE ser mayor que 0)

message

El cuerpo del mensaje

Nota:

Si serialize está definido como false, DEBE ser del tipo: chaîne de caractères, entier, nombre décimal o booléen. En otros casos se emitirá un aviso.

serialize

El parámetro opcional serialize controla el método de envío del mensaje message. serialize tiene por omisión el valor true lo que significa que el mensaje message será serializado utilizando el mismo mecanismo que el utilizado por las sesiones, antes de ser enviado a la cola de mensajes. Esto permite enviar arrays y objetos complejos a otros scripts PHP, o bien, si se utiliza la extensión WDDX, intercambiar mensajes con clientes compatibles WDDX.

blocking

Si el mensaje es demasiado grande para ser almacenado por la cola, su script esperará hasta que otro proceso lea de la cola un mensaje, y libere suficiente espacio para su mensaje. Este es el modo bloqueante: puede evitar este modo utilizando el parámetro blocking con el valor false: en este caso, msg_send() retornará inmediatamente false si el mensaje es demasiado grande para la cola. Asignará entonces al parámetro error_code el valor de MSG_EAGAIN, indicando que debería intentar enviar su mensaje de nuevo, un poco más tarde.

error_code

Si la función falla, el código de error opcional será definido con el valor de la variable del sistema errno.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Al enviar con éxito un mensaje, la cola se actualiza de la siguiente manera: msg_lrpid toma el valor del identificador de proceso del proceso llamante, msg_qnum se incrementa en 1 y msg_rtime toma la fecha y hora actual.

Historial de cambios

Versión Descripción
8.0.0 queue ahora espera una SysvMessageQueue; anteriormente, se esperaba un resource.

Ver también