php队列是否安装成功,PHP队列服务HTTPSQS的安装和使用实例

HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key/Value 数据库来做数据的持久化存储

HTTPSQS(HTTP Simple Queue Service)是一个基于HTTP GET/POST请求的简单队列服务。

PHP队列服务HTTPSQS的安装和使用

20150814220037476.png

队列(Queue)又称先进先出表(First In First Out),即先进入队列的元素,先从队列中取出。加入元素的一头叫“队头”,取出元素的一头叫“队尾”。利用消息队列可以很好地异步处理数据传送和存储, 当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取消息队列来异步插入。另外,还可以将较慢的处理逻辑、有并发数量限制的处理逻辑,通过消息队列放在后台处理,例如FLV视频转换、发送手机短信、发送电子邮件等,也就是实现异步请求。

HTTPSQS 具有以下特征:

● 非常简单,基于 HTTP GET/POST 协议。PHP、Java、Perl、Shell、Python、Ruby等支持HTTP协议的编程语言均可调用。

● 非常快速,入队列、出队列速度超过10000次/秒。

● 高并发,支持上万的并发连接,C10K不成问题。

● 支持多队列。

● 单个队列支持的最大队列数量高达10亿条。

● 低内存消耗,海量数据存储,存储几十GB的数据只需不到100MB的物理内存缓冲区。

● 可以在不停止服务的情况下便捷地修改单个队列的最大队列数量。

● 可以实时查看队列状态(入队列位置、出队列位置、未读队列数量、最大队列数量)。

● 可以查看指定队列ID(队列点)的内容,包括未出、已出的队列内容。

● 查看队列内容时,支持多字符集编码。

● 源代码不超过800行,适合二次开发。

HTTPSQS使用示例:

//生成对账单

public function create_dzd()

{

$sl_id = I('get.sl_id','','intval');

$sl_uid = I('get.sl_uid','','intval');

$this->send_task->startTrans();//开启事务

$data['st_params'] = $sl_id;

$data['st_seller_id'] = $sl_uid;

$data['st_type'] = 3;

$data['st_add_time'] = time();

$data['st_success'] = 1;//1后台生成对账单

$data['st_is_compelete'] = 0;

$data['st_ip'] = get_client_ip(1);

$id = $this->send_task->add($data);

if($id){

$httpsqs = $this->getHttpsqs();

$name = self::EXPORT_RECORD;

$rs = $httpsqs->put($name, $id);

if($rs){

$this->send_task->commit();

$this->ajaxReturn(array('code'=>0, 'msg'=>'已经开始生成!'));

}else{

$this->send_task->rollback();

$this->ajaxReturn(array('code'=>2, 'msg'=>'生成对账单失败'));

}

}else{

$this->ajaxReturn(array('code'=>3, 'msg'=>'生成对账单失败'));

}

}

这就是一个队列的应用,生成对账单,入队列,同时把记录写入到一张表记录。另一个java脚本读取队列,进行处理,更新记录。

HTTPSQS封装在一个类中,调用的时候这样调用:

//初始化队列服务

private function getHttpsqs()

{

import("COM.Httpsqs");

$httpsqs = new Httpsqs("192.168.1.8", 1218, "dafadsfasfsadfsa", 'utf-8');

return $httpsqs;

}

但是要使用HTTPSQS,必须有一台队列服务器,这个服务器装了队列服务。

以上初始化队列,也指定了ip,端口,来连接队列服务器,才能进行队列的操作。

HTTPSQS服务器端安装方法:

ulimit -SHn 65535

wget http://httpsqs.googlecode.com/files/libevent-2.0.12-stable.tar.gz

tar zxvf libevent-2.0.12-stable.tar.gz

cd libevent-2.0.12-stable/

./configure --prefix=/usr/local/libevent-2.0.12-stable/

make

make install

cd ../

wget http://httpsqs.googlecode.com/files/tokyocabinet-1.4.47.tar.gz

tar zxvf tokyocabinet-1.4.47.tar.gz

cd tokyocabinet-1.4.47/

./configure --prefix=/usr/local/tokyocabinet-1.4.47/

#注:在32位Linux操作系统上编译Tokyo cabinet,请使用./configure --enable-off64代替./configure,可以使数据库文件突破2GB的限制。

#./configure --enable-off64 --prefix=/usr/local/tokyocabinet-1.4.47/

make

make install

cd ../

wget http://httpsqs.googlecode.com/files/httpsqs-1.7.tar.gz

tar zxvf httpsqs-1.7.tar.gz

cd httpsqs-1.7/

make

make install

cd ../

更具体的服务器端HTTPSQS队列服务的安装和编译,参考:https://code.google.com/p/httpsqs/

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值