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
- 선택적
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
는 호출 프로세스의 프로세스 ID로 설정되고 msg_qnum
은 1씩 증가하며 msg_stime
은 현재 시간으로 설정됩니다.
변경 로그
버전 | 설명 |
---|---|
8.0.0 | queue 는 이제 SysvMessageQueue 인스턴스를 예상합니다. 이전에는 리소스가 필요했습니다. |
기타
- msg_remove_queue() - 메시지 큐 파괴
- msg_receive() - 메시지 대기열에서 메시지 수신
- msg_stat_queue() - 메시지 큐 데이터 구조에서 정보를 반환합니다.
- msg_set_queue() - 메시지 큐 데이터 구조의 정보 설정