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 相关文章推荐
模拟OICQ的实现思路和核心程序(一)
Oct 09 PHP
PHP 模拟$_PUT实现代码
Mar 15 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 PHP
PHP中的生成XML文件的4种方法分享
Oct 06 PHP
php语言流程控制中的主动与被动
Nov 05 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
Feb 01 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
PHP生成及获取JSON文件的方法
Aug 23 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
Jan 16 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
Apr 04 PHP
[原创]php正则删除img标签的方法示例
May 27 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 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中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
每天学点Vue源码之vm.$mount挂载函数
2019/03/11 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
解决Vue项目中tff报错的问题
2020/10/21 Javascript
Python的IDEL增加清屏功能实例
2017/06/19 Python
解决Mac下使用python的坑
2019/08/13 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
基于python实现上传文件到OSS代码实例
2020/05/09 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
年度优秀员工获奖感言
2014/08/15 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
PyTorch中permute的使用方法
2022/04/26 Python