The examples in this article describe the usage of PHP message queue. Share it with everyone for your reference, the details are as follows:
This message queue is used for process communication under 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";
Queue status information: For specific reference manual
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 )
Use the ipc command to view it under Linux. The ipcrm command can be deleted
Readers who are interested in more PHP-related content can check out the special topics of this site: "Introduction Tutorial on PHP Basic Syntax", "Summary of PHP Error and Exception Handling Methods", "Summary of PHP Programming Algorithms" and " PHP object-oriented programming introductory tutorial"
I hope this article will be helpful to everyone in PHP programming.
The above introduces the analysis of PHP message queue usage examples, including aspects of content. I hope it will be helpful to friends who are interested in PHP tutorials.