이 기사의 예에서는 PHP 메시지 대기열의 사용법을 설명합니다. 자세한 내용은 다음과 같습니다.
이 메시지 대기열은 Linux에서 프로세스 통신에 사용됩니다.
#根据路径和后缀创建一个id $key = ftok(__DIR__, 'R'); #获取队列中的消息 $q = msg_get_queue($key); #删除队列 msg_remove_queue($q); #获取队列的状态信息 $status = msg_stat_queue($q); print_r($status); echo "\n"; for($i=0;$i<100;$i++) { /** * 向队列里添加消息 * resource $queue , int $msgtype , mixed $message [, bool $serialize = true [, bool $blocking = true [, int &$errorcode ]]] * $msgtype :消息的类型 * $message : 具体的数据 * $serialize:是否要序列化 * $blocking: 是否阻塞 , 当队列中满时,会进行阻塞,设为非阻塞会产生一个 MSG_EAGAIN 的 错误消息 */ $flag = msg_send($q, 111, array('a'=>1), true, false , $errorcode); var_dump($errorcode); } /** 接收消息 resource $queue , int $desiredmsgtype , int &$msgtype , int $maxsize , mixed &$message [, bool $unserialize = true [, int $flags = 0 [, int &$errorcode ]]] $desiredmsgtype:0表示从队列最前面开始返回数据, bigger 0:具体的某个队列 $maxsize:数据最大值,获取的消息如果》此值则出错 $msgtype:消息的具体类型, 因为$desiredmsgtype可以不指定类型,即指定为0 $flags:MSG_IPC_NOWAIT 如果队列为空直接返回(不阻塞), MSG_EXCEPT MSG_NOERROR 参见手册 */ $data = msg_receive($q, 0, $type, 200, $msg); var_dump($data); echo "\n"; var_dump($type); echo "\n"; var_dump($msg); echo "\n";
큐 상태 정보 : 특정 참조 매뉴얼
Array ( [msg_perm.uid] => 1015 [msg_perm.gid] => 100 [msg_perm.mode] => 438 [msg_stime] => 0 [msg_rtime] => 0 [msg_ctime] => 1411830331 [msg_qnum] => 0 [msg_qbytes] => 65536 [msg_lspid] => 0 [msg_lrpid] => 0 )
Linux에서 보려면 ipc 명령을 사용하고, 삭제하려면 ipcrm 명령을 사용하세요
PHP 관련 콘텐츠에 대한 추가 정보 관심 있는 독자는 이 사이트에서 "PHP 기본 구문 소개 튜토리얼", "PHP 오류 및 예외 처리 방법 요약", "PHP 프로그래밍 알고리즘 요약" 및 "PHP 프로그래밍 알고리즘 요약"과 같은 특별 주제를 확인할 수 있습니다. "PHP 객체지향 프로그래밍 입문 튜토리얼"
이 글이 PHP 프로그래밍에 종사하는 모든 분들에게 도움이 되기를 바랍니다.
위 내용은 내용적인 측면을 포함하여 PHP 메시지 큐 사용 예를 분석한 내용입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.