目前主項(xiàng)目是laravel開發(fā),其中有個(gè)功能是根據(jù)用戶配置的http地址,將系統(tǒng)的數(shù)據(jù)收集以后發(fā)送過去,目前采用redis隊(duì)列+guzzle/http的方式進(jìn)行發(fā)送。由于php-cli消費(fèi)隊(duì)列時(shí)需要開多個(gè)消費(fèi)進(jìn)程,比較搶占主項(xiàng)目fpm的內(nèi)存,所以想進(jìn)行優(yōu)化,優(yōu)化方案:
1.業(yè)務(wù)上將多條數(shù)據(jù)合并,做一次發(fā)送給第三方
2.使用workerman5.0提供的異步http客戶端進(jìn)行發(fā)送,具體的流程是主項(xiàng)目在laravel隊(duì)列中將數(shù)據(jù)組裝好以后,發(fā)送給webman監(jiān)聽的某個(gè)端口上,由webman進(jìn)行http異步發(fā)送,或者webman也啟用redis隊(duì)列,在隊(duì)列中使用http異步發(fā)送。
上面的第二步有些拿不準(zhǔn),不知道是否有開發(fā)價(jià)值,和現(xiàn)有的laravel隊(duì)列直接guzzle/http發(fā)送相比提升是否很大?
這是以前的對比,同步的情況下協(xié)程http客戶端是有提升,但是如果在redis隊(duì)列中是否使用協(xié)程http還有價(jià)值?
http://wtbis.cn/q/10702