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开发大型项目的一点经验
Oct 09 PHP
类的另类用法--数据的封装
Oct 09 PHP
通过ICQ网关发送手机短信的PHP源程序
Oct 09 PHP
非常好的php目录导航文件代码
Oct 09 PHP
Php Cookie的一个使用注意点
Nov 08 PHP
PHP 地址栏信息的获取代码
Jan 07 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
PHP生成各种常见验证码和Ajax验证过程
Jan 10 PHP
PHP 匿名函数与注意事项详细介绍
Nov 26 PHP
PHP实现微信退款功能
Oct 02 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 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
农民和部队如何穿矿
2020/03/04 星际争霸
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
Python实现八大排序算法
2016/08/13 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
2020/02/17 Python
python redis存入字典序列化存储教程
2020/07/16 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
英国著名药妆店:Superdrug
2021/02/13 全球购物
房地产销售计划书
2014/01/10 职场文书
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记