PHP消息队列用法实例分析
本文实例讲述了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表示从队列最前面开始返回数据,bigger0:具体的某个队列 $maxsize:数据最大值,获取的消息如果》此值则出错 $msgtype:消息的具体类型,因为$desiredmsgtype可以不指定类型,即指定为0 $flags:MSG_IPC_NOWAIT如果队列为空直接返回(不阻塞),MSG_EXCEPTMSG_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程序设计有所帮助。