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程序设计有所帮助。