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和ACCESS写聊天室(二)
Oct 09 PHP
php 获取当前访问的url文件名的方法小结
Feb 08 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
Jun 19 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
php设置允许大文件上传示例代码
Mar 10 PHP
PHP用反撇号执行外部命令
Apr 14 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
PHP之图片上传类实例代码(加了缩略图)
Jun 30 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
phpStorm+XDebug+chrome 配置详解
Apr 01 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
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
php绘制圆形的方法
2015/01/24 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
js资料prototype 属性
2007/03/13 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
js三种排序算法分享
2012/08/16 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
Javascript实现异步编程的过程
2018/06/18 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
vue实现循环滚动列表
2020/06/30 Javascript
简单了解OpenCV是个什么东西
2017/11/10 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
简述DNS进行域名解析的过程
2013/12/02 面试题
Prototype是怎么扩展DOM的
2014/10/01 面试题
控制工程专业个人求职信
2013/09/25 职场文书
项目经理岗位职责
2013/11/11 职场文书
技术副厂长岗位职责
2013/12/26 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
农林环境专业求职信
2014/03/13 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
荆州古城导游词
2015/02/06 职场文书
导游词之扬州大明寺
2019/10/09 职场文书