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 加密与解密的斗争
Apr 17 PHP
php array_filter除去数组中的空字符元素
Jun 21 PHP
PHP批量采集下载美女图片的实现代码
Jun 03 PHP
php自动识别文件编码并转换为UTF-8的方法
Jun 12 PHP
支持中文的PHP按字符串长度分割成数组代码
May 17 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 PHP
Thinkphp框架开发移动端接口(1)
Aug 18 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
PHP实现登录验证码校验功能
May 17 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
Dec 21 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面向对象全攻略 (十四) php5接口技术
2009/09/30 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
PHP易混淆知识整理笔记
2015/09/24 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
在python win系统下 打开TXT文件的实例
2018/04/29 Python
OpenCV 边缘检测
2019/07/10 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
keras多显卡训练方式
2020/06/10 Python
苹果音乐订阅:Apple Music
2018/08/02 全球购物
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
见习期自我鉴定
2013/11/07 职场文书
销售工作人员的自我评价分享
2013/11/10 职场文书
红领巾心向党广播稿
2014/01/19 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python