PHP消息队列用法实例分析


Posted in PHP onFebruary 12, 2016

本文实例讲述了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 更新数据库中断的解决方法
Jun 05 PHP
rephactor 优秀的PHP的重构工具
Jun 09 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
php网站地图生成类示例
Jan 13 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
Jul 19 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
php中get_meta_tags()、CURL与user-agent用法分析
Dec 16 PHP
php快速查找数据库中恶意代码的方法
Apr 01 PHP
PHP中addcslashes与stripcslashes函数用法分析
Jan 07 PHP
PHP自定义多进制的方法
Nov 03 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
php如何利用pecl安装mongodb扩展详解
Jan 09 PHP
PHP共享内存用法实例分析
Feb 12 #PHP
PHP连接MSSQL方法汇总
Feb 05 #PHP
Symfony2开发之控制器用法实例分析
Feb 05 #PHP
Symfony2实现在doctrine中内置数据的方法
Feb 05 #PHP
PHP MYSQL实现登陆和模糊查询两大功能
Feb 05 #PHP
twig模板获取全局变量的方法
Feb 05 #PHP
twig里使用js变量的方法
Feb 05 #PHP
You might like
PHP爆绝对路径方法收集整理
2012/09/17 PHP
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
JNI的定义
2012/11/25 面试题
程序员跳槽必看面试题总结
2013/06/28 面试题
品学兼优的大学生自我评价
2013/09/20 职场文书
测试工程师岗位职责
2013/11/28 职场文书
平面设计师工作职责范文
2013/12/03 职场文书
专家推荐信模板
2014/05/09 职场文书
课程设计的心得体会
2014/09/03 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
文体活动总结
2015/02/04 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
博物馆观后感
2015/06/05 职场文书
党性修养心得体会2016
2016/01/21 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL