資料介紹
軟件簡介
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次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費
- 3PC6206 300mA低功耗低壓差線性穩壓器中文資料
- 1.12 MB | 1次下載 | 免費
- 4網絡安全從業者入門指南
- 2.91 MB | 1次下載 | 免費
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 6海川SM5701規格書
- 1.48 MB | 次下載 | 免費
- 7H20PR5電磁爐IGBT功率管規格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護等級說明
- 0.08 MB | 次下載 | 免費
本月
- 1貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設計指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論