Semaphore msg_send

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

msg_send — 메시지 대기열에 메시지 보내기


설명

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()message_type 유형의 message(0보다 커야 함)를 queue에 의해 지정된 메시지 대기열로 보냅니다.


매개변수

queue
메시지 큐.
message_type
메시지 유형(0보다 커야 함)
message
메시지 본문입니다.

메모: false로 설정된 serialize가 제공되면 string, int, float 또는 bool 유형이어야 합니다(MUST). 다른 경우에는 경고가 발행됩니다.

serialize
선택적 serializemessage가 전송되는 방식을 제어합니다. serialize는 기본적으로 true로 설정되며 이는 message가 대기열로 전송되기 전에 세션 모듈과 동일한 메커니즘을 사용하여 직렬화됨을 의미합니다. 이렇게 하면 복잡한 배열과 개체를 다른 PHP 스크립트로 보낼 수 있습니다. 또는 WDDX 직렬 변환기를 사용하는 경우 WDDX 호환 클라이언트로 보낼 수 있습니다.
blocking
메시지가 너무 커서 큐에 맞지 않으면 다른 프로세스가 큐에서 메시지를 읽고 메시지를 보낼 수 있는 충분한 공간을 확보할 때까지 스크립트가 대기합니다. 이를 차단이라고 합니다. 선택적 blocking 매개변수를 false로 설정하여 차단을 방지할 수 있습니다. 이 경우 메시지가 대기열에 비해 너무 크면 msg_send()가 즉시 false를 반환하고 선택적 error_codeMSG_EAGAIN으로 설정하여 메시지를 보내야 함을 나타냅니다. 조금 후에 다시.
error_code
함수가 실패하면 선택적 오류 코드가 시스템 errno 변수의 값으로 설정됩니다.

반환 값

성공하면 true를, 실패하면 false를 반환합니다.

성공적으로 완료되면 메시지 큐 데이터 구조가 다음과 같이 업데이트됩니다. msg_lspid는 호출 프로세스의 프로세스 ID로 설정되고 msg_qnum은 1씩 증가하며 msg_stime은 현재 시간으로 설정됩니다.


변경 로그

버전 설명
8.0.0 queue는 이제 SysvMessageQueue 인스턴스를 예상합니다. 이전에는 리소스가 필요했습니다.

기타