[請益] 有沒有這種多工的函數

作者: dudeboy (討噓至尊)   2018-10-30 16:46:09
想要讀20個網站的RSS,讀到的資料放到我的資料庫。
但是很慢,PHP程式執行的時間已經超過PHP設定(max_execution_time)的最大限制。
雖然改了php.ini設定後,可以執行了,但還是慢。
我是把20個網站的RSS存在陣列中,再用for迴圈依序讀。
我想了一個方法,就是開兩個分頁,一個讀0~11,另一個讀12~19
已經成功了,可是畢竟不是很正常的寫法,有點有歪路土法煉鋼。
有沒有函數是可以幫我處理這種情況的??
作者: Jerr (身為老爸老媽嚕..)   2018-10-30 17:55:00
用php-cli跑 或 pcntl_fork()
作者: jfcherng (小霹靂)   2018-10-30 20:09:00
哪裡慢?網路慢?CPU慢?硬碟慢?curl_multi_init(), guzzle concurrent request
作者: wotupset (wotupset)   2018-10-30 20:39:00
先用js處理過 再透過php寫入資料庫?
作者: dudeboy (討噓至尊)   2018-10-30 20:57:00
應該是讀rss的時候 有的網站的速度快 有的慢 可能是對方網速的問題拖到我我實際上不是讀20個網站 是100多個網站 每讀完一個就會就會ECHO 就會看到迴圈跑一跑就卡住的情況
作者: shadowjohn (轉角遇到愛)   2018-10-30 21:08:00
改成跑五支php cli,每支負責20個,丟背景跑
作者: howder5566 (好der5566)   2018-10-30 21:17:00
用fopen的方式跑迴圈,我目前用這方法同時向100台機器要資料,起始時間都一樣,回來的時間也都差不多(依機器性能不同返回資料的時間也不同),都同時寫入資料庫,給你參考看看
作者: toy9986619 (幻飄)   2018-10-30 21:59:00
guzzle http可以一次送多個請求出去,所需時間大概是回應最長的時間
作者: newversion (海納百川)   2018-10-30 22:29:00
要不要用curl keep alive http?
作者: ddoll288 (風兒卿卿)   2018-11-01 01:56:00

Links booklink

Contact Us: admin [ a t ] ucptt.com