有兩種情況, 一是 php可運(yùn)行的最大時(shí)間是不是有設(shè)置. 雖然你加了set_time_limit(0). 但很有可能沒設(shè)置成功,因?yàn)閜hp有安全模式, 你可以修改php.ini
創(chuàng)新互聯(lián)主營亳州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件定制開發(fā),亳州h5成都微信小程序搭建,亳州網(wǎng)站營銷推廣歡迎亳州等地區(qū)企業(yè)咨詢
2是系統(tǒng)資源不夠, 可能是php宕了或者 數(shù)據(jù)庫宕了.
性能指標(biāo),無非時(shí)間復(fù)雜度和空間復(fù)雜度。決定性能的,只有算法和硬件。而且解釋型語言并不存在真正的數(shù)據(jù)結(jié)構(gòu),所以,只能從算法上優(yōu)化。
最弱雞方法: 將內(nèi)存調(diào)大
攜程方法循環(huán) yield
緩沖查詢方式,php內(nèi)部提供的接口可以這樣實(shí)現(xiàn)
你用網(wǎng)頁的方式,讓人點(diǎn)擊,服務(wù)器采集,簡直是弱爆了。每個(gè)人的點(diǎn)擊循環(huán)1000次,來個(gè)100人同時(shí)點(diǎn),你要用的是普通的虛擬機(jī)就不行了。
最好是換種方式實(shí)現(xiàn),不要通過網(wǎng)頁進(jìn)行采集。
可以非常簡單的在數(shù)據(jù)庫的表,創(chuàng)建一個(gè)采集隊(duì)列,后臺執(zhí)行一個(gè)crontab的計(jì)劃任務(wù),去完成隊(duì)列里的采集任務(wù)。