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 相关文章推荐
我的论坛源代码(五)
Oct 09 PHP
PHP个人网站架设连环讲(三)
Oct 09 PHP
php学习之 数组声明
Jun 09 PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 PHP
解析ajax事件的调用顺序
Jun 17 PHP
Php-Redis安装测试笔记
Mar 05 PHP
教你php如何实现验证码
Jan 20 PHP
PHP生成及获取JSON文件的方法
Aug 23 PHP
PHP手机短信验证码实现流程详解
May 17 PHP
PHP实现通过二维数组键值获取一维键名操作示例
Oct 11 PHP
PHP ElasticSearch做搜索实例讲解
Feb 05 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 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上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
AngularJS基础 ng-list 指令详解及示例代码
2016/08/02 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
python ansible服务及剧本编写
2017/12/29 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
Python列表切片常用操作实例解析
2020/03/10 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
利用python进行文件操作
2020/12/04 Python
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
运动会邀请函范文
2014/01/31 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
社团个人总结范文
2015/03/05 职场文书
教师节校长致辞
2015/07/31 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle
Python Django模型详解
2021/10/05 Python