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 相关文章推荐
利用文件属性结合Session实现在线人数统计
Oct 09 PHP
PHP CLI模式下的多进程应用分析
Jun 03 PHP
php防注入及开发安全详细解析
Aug 09 PHP
ThinkPHP之A方法实例讲解
Jun 20 PHP
php绘制一个矩形的方法
Jan 24 PHP
php实现session自定义会话处理器的方法
Jan 27 PHP
PHP pear安装配置教程
May 14 PHP
thinkphp分页实现效果
Oct 13 PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 PHP
php post json参数的传递和接收处理方法
May 31 PHP
PHP 7.4 新语法之箭头函数实例详解
May 09 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 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获取链表中倒数第K个节点的方法
2018/01/18 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
vue实现Input输入框模糊查询方法
2021/01/29 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
Python字符串替换实例分析
2015/05/11 Python
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
python基础教程之while循环
2019/08/14 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
老海军美国官网:Old Navy
2016/09/05 全球购物
C#中的验证控件有几种
2014/03/08 面试题
贯彻学习两会心得体会范文
2014/03/17 职场文书
文明城市标语
2014/06/16 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
使用nginx配置访问wgcloud的方法
2021/06/26 Servers
纯html+css实现打字效果
2021/08/02 HTML / CSS