redis+workman 做爬蟲服務(wù),開多個(gè)進(jìn)程抓取數(shù)據(jù),程序內(nèi)存不會釋放一直增加!求解!
目測你程序的問題
你的程序問題,看看是不是有全局?jǐn)?shù)組一直在添加元素又沒刪除
這是讀取redis隊(duì)列中的任務(wù)代碼
[attach]787[/attach]
assignTask方法是運(yùn)行多次么?如果是不斷運(yùn)行assignTask,就不會不斷new 很多個(gè)Worker實(shí)例,會導(dǎo)致內(nèi)存不斷增加。
這個(gè)方法是會一直調(diào)用的,而且開的是多個(gè)進(jìn)程。那我每次使用完work對象然后unset掉可以解決這個(gè)問題嗎!
unset不會關(guān)閉進(jìn)程,也不會銷毀$worker實(shí)例
正確的做法應(yīng)該是workerman提前啟動一批進(jìn)程監(jiān)聽某個(gè)端口,業(yè)務(wù)需要調(diào)用assignTask時(shí),向這個(gè)端口發(fā)送請求,這些進(jìn)程收到請求后處理。
端口怎么用啊,有沒有demo發(fā)個(gè)啊