您的位置:首页 > 产品设计 > UI/UE

基于System V Message queue的PHP消息队列封装

2015-08-04 14:09 507 查看
System V Message queue 是一种进程通信(IPC)的方式,方便实现生产者-消费者模型,单个或多个生产者向队列中写入消息,多个生产者再从队列中获取消息进行处理。

项目地址:https://github.com/huyanping/Zebra-Message-Queue

packagist地址:https://packagist.org/packages/jenner/message_queue

该Wrapper支持:

进程通信

设置最大队列容量(字节单位)

获取当前队列数量

修改队列部分属性

注意:如果要修改队列最大容量,请确保你的脚本是运行在root下
<?php
/**
* Created by PhpStorm.
* User: huyanping
* Date: 14-8-22
* Time: 下午12:13
*/

define('TEST_ROOT', dirname(__FILE__));

require TEST_ROOT . '/../core/IMessageQueue.interface.php';
require TEST_ROOT . '/../core/SystemVMessageQueue.class.php';

try{
$messageQueue = new SystemVMessageQueue(1, dirname(__FILE__));
while(true){
var_dump($messageQueue->put(mt_rand(0, 1000)));
echo $messageQueue->size() . PHP_EOL;
sleep(1);
}
}catch(Exception $e){
echo $e->getMessage();
}

读取队列:
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 14-8-22
* Time: 下午2:35
*/

define('TEST_ROOT', dirname(__FILE__));

require TEST_ROOT . '/../core/IMessageQueue.interface.php';
require TEST_ROOT . '/../core/SystemVMessageQueue.class.php';

try{
$messageQueue = new SystemVMessageQueue(1, dirname(__FILE__));
var_dump($messageQueue->queue_remove());
}catch(Exception $e){
echo $e->getMessage();
}


原创文章,转载请注明: 转载自始终不够
本文链接地址: 基于System V Message queue的PHP消息队列封装
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: