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 相关文章推荐
第六节--访问属性和方法
Nov 16 PHP
PHP简单系统数据添加以及数据删除模块源文件下载
Jun 07 PHP
php 破解防盗链图片函数
Dec 09 PHP
服务器变量 $_SERVER 的深入解析
Jul 02 PHP
ThinkPHP跳转页success及error模板实例教程
Jul 17 PHP
PHP date函数常用时间处理方法
May 11 PHP
PHP生成制作验证码的简单实例
Jun 12 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 PHP
php和redis实现秒杀活动的流程
Jul 17 PHP
PHP如何通过date() 函数格式化显示时间
Nov 13 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
main.php
2006/12/09 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
php压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
解析PHP无限级分类方法及代码
2013/06/21 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
php socket通信简单实现
2016/11/18 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
极简主义法编写JavaScript类
2017/11/02 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
Python3搜索及替换文件中文本的方法
2015/05/22 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
python 实现批量替换文本中的某部分内容
2019/12/13 Python
工程概预算专业毕业生求职信
2013/10/04 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
社会治安综合治理管理责任书
2014/04/16 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书