资料介绍
软件简介
php-nsq
php-nsq 是nsq的php客户端,采用c扩展编写,性能和稳定性。
安装 :
请提前安装libevent
Dependencies:?libevent??(apt-get?install?libevent-dev?,yum?install?libevent-devel) 1.?sudo?phpize 2.?./configure? 3.?make?? 4.?make?install?? add?in?your?php.ini: extension?=?nsq.so;
?pub例子:
$nsqdAddr?=?array( ????"127.0.0.1:4150", ????"127.0.0.1:4154" ); $nsq?=?new?Nsq(); $isTrue?=?$nsq->connectNsqd($nsqdAddr); for($i?=?0;?$i?10000;?$i++){ ????$nsq->publish("test",?"nihao"); } $nsq->closeNsqdConnection(); //?Deferred?publish? //function?:?deferredPublish(string?topic,string?message,?int?millisecond);? //millisecond?default?:?[0?connectNsqd($nsqdAddr); for($i?=?0;?$i?20;?$i++){ ????$deferred->deferredPublish("test",?"message?daly",?3000);? } $deferred->closeNsqdConnection();
?sub例子:
?"test", ????"channel"?=>?"struggle", ????"rdy"?=>?2,????????????????//optional?,?default?1 ????"connect_num"?=>?1,????????//optional?,?default?1??? ????"retry_delay_time"?=>?5000,??//optional,?default?0?,?if?run?callback?failed,?after?5000?msec,?message?will?be?retried ????"auto_finish"?=>?true,?//default?true ); $nsq->subscribe($nsq_lookupd,?$config,?function($msg,$bev){? ????echo?$msg->payload; ????echo?$msg->attempts; ????echo?$msg->message_id; ????echo?$msg->timestamp; });
Nsq 类方法:
-
connectNsqd($nsqdAddrArr)
?
pub的时候连接nsq,你也可以利用此函数做健康检查 -
closeNsqdConnection()
?
关闭nsq的连接 -
publish($topic,$msg)
?
消息发送 -
deferredPublish($topic,$msg,$msec)
?
延迟消息发送 -
subscribe($nsq_lookupd,$config,$callback)
?
消息订阅
Message 类方法与属性:
-
timestamp
?
消息时间戳 -
attempts
?
消息的重试次数,(从1开始) -
message_id
?
消息id? -
payload
?
消息内容 -
finish($bev,$msg->message_id)
?
主动的 ack消息方法 -
touch($bev,$msg->message_id)
?
如果你消息执行太长,可以利用次函数告知nsq 你还活着,一般用于执行频率比较规律的场景。
Tips :
1.如果callback内需要外部变量,可以采用以下use的写法:
$nsq->subscribe($nsq_lookupd,?$config,?function($msg,$bev)?use?($you_variable){? ????echo?$msg->payload; ????echo?$msg->attempts; ????echo?$msg->message_id; ????echo?$msg->timestamp; });
?2.消息重试,只要抛异常就可以,切记不要陷入死循环,超过自己觉得可以的次数 要return:
subscribe($nsq_lookupd,?$config,?function($msg){? ????try{ ????????echo?$msg->payload?.?"?"?.?"attempts:".$msg->attempts."\n"; ????????//do?something ????}catch(Exception?$e){ ????????if($msg->attempts?3){ ????????????//the?message?will?be?retried?after?you?configure?retry_delay_time? ????????????throw?new?Exception("");? ????????}else{ ????????????echo?$e->getMessage(); ????????????return; ????????} ????} });
3.如果你想增加 客户端的心跳时间与消息的超时时间 :
?第一步?在nsqd启动时要加入相关参数,这个参数是最大的限制,比如--max-heartbeat-interval=1m30s?心跳时间最大不能超过1分30秒: ??????nsqd?--lookupd-tcp-address=127.0.0.1:4160?--max-heartbeat-interval=1m30s?--msg-timeout=10m30s 第二步??因为第一步是指定最大时间,所以还需要第二步在客户端指定所需要的值?具体请看?example目录中的identify开头的文件例子。
4.如果你想增强消费能力,可以加大rdy参数
5.你可以用supervisor管理,但是因为是多进程消费,你需要在supervisor job的配置文件?添加:?
????stopasgroup=true ????killasgroup=true
Changes
-
3.0
-
修复因libevent 超过4096消息被截断问题
-
增加identify指令功能,可以增加客户端心跳时间 与 消息超时时间
-
-
2.4.0
-
修复 pub bug
-
修复 sub coredump
-
修覆盖 touch bug
-
增加等待,当刚初始化的topic没消息时
-
-
2.3.1
-
pub支持域名
-
修复 pub coredump
-
- 开源软件-Ocara PHP框架
- PHP教程:foreach使用引用注意的问题
- PHP学习教程分享 7次下载
- 如何使用PHP-X快速开发一个PHP扩展 8次下载
- 如何在Windows系统下安装搭建PHP环境 13次下载
- 学习PHP需要注意那几点 8次下载
- 如何使用PHP-X快速开发一个PHP扩展 9次下载
- PHP基础知识的详细资料总结 7次下载
- PHP的漏洞全部资料解析 6次下载
- 紫金桥软件客户端的启动参数 3次下载
- 基于PHP的 ArcMS地图应用开发方法及案例 3次下载
- CoolpyCould客户端 18次下载
- php程序实例下载
- PHP/MySQL教程 0次下载
- PHP完全自学手册
- 适用于Linux的基于Rust的同步客户端介绍 660次阅读
- 分享一款别样的ssh客户端-PortX 772次阅读
- phpy:PHP与Python互调用库 1042次阅读
- PHP中的生成器 879次阅读
- 基于LwIP的HTTP客户端设计 2974次阅读
- 基于LwIP的TCP客户端设计 2321次阅读
- 如何在Ubuntu 20.04安装PHP 8.1并将其与Nginx集成 3511次阅读
- SSH 客户端各种特性和使用说明 1612次阅读
- php是什么语言编写的 5024次阅读
- 一文知道PHP的优点和缺点 7023次阅读
- 为什么PHP的开发效率比java高但是java比PHP流行 1w次阅读
- php开发中遇到的难点有哪些_十大php开发常见问题盘点 1.8w次阅读
- php开发环境的搭建和使用 3474次阅读
- php实现定时器任务方法详解 1435次阅读
- PHP实现定时任务的几种方法详解 7162次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论