資料介紹
軟件簡介
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次下載 | 免費
評論