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中鲜为人知的10个函数
Feb 28 PHP
php检测文件编码的方法示例
Apr 25 PHP
php实现的发送带附件邮件类实例
Sep 22 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
php中mysql操作buffer用法详解
Mar 19 PHP
PHP SPL标准库之SplFixedArray使用实例
May 12 PHP
WordPress开发中的get_post_custom()函数使用解析
Jan 04 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 PHP
PHP实现的装箱算法示例
Jun 23 PHP
PHP实现类似题库抽题效果
Aug 16 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 PHP
PHP chunk_split()函数讲解
Feb 12 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
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
php防止站外远程提交表单的方法
2014/10/20 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
优化javascript的执行速度
2010/01/23 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
javascript的push使用指南
2014/12/05 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
2015/09/14 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
jquery实现弹窗(系统提示框)效果
2019/12/10 jQuery
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
python实现的简单文本类游戏实例
2015/04/28 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
详解Django中间件执行顺序
2018/07/16 Python
pycharm实现猜数游戏
2020/12/07 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
自荐信需注意事项
2014/01/25 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
个性婚礼策划方案
2014/05/17 职场文书
爱国主题班会教案
2015/08/14 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书