作者dudeboy (包小皮)
看板PHP
標題[請益] 有沒有這種多工的函數
時間Tue Oct 30 16:46:09 2018
想要讀20個網站的RSS,讀到的資料放到我的資料庫。
但是很慢,PHP程式執行的時間已經超過PHP設定(max_execution_time)的最大限制。
雖然改了php.ini設定後,可以執行了,但還是慢。
我是把20個網站的RSS存在陣列中,再用for迴圈依序讀。
我想了一個方法,就是開兩個分頁,一個讀0~11,另一個讀12~19
已經成功了,可是畢竟不是很正常的寫法,有點有歪路土法煉鋼。
有沒有函數是可以幫我處理這種情況的??
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.170.77.104
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1540889172.A.4A9.html
1F:→ Jerr: 用php-cli跑 或 pcntl_fork() 10/30 17:55
2F:→ jfcherng: 哪裡慢?網路慢?CPU慢?硬碟慢? 10/30 20:09
3F:→ jfcherng: curl_multi_init(), guzzle concurrent request 10/30 20:11
4F:→ wotupset: 先用js處理過 再透過php寫入資料庫? 10/30 20:39
5F:→ dudeboy: 應該是讀rss的時候 有的網站的速度快 有的慢 可能是對方 10/30 20:57
6F:→ dudeboy: 網速的問題拖到我 10/30 20:57
7F:→ dudeboy: 我實際上不是讀20個網站 是100多個網站 每讀完一個就會 10/30 20:58
8F:→ dudeboy: 就會ECHO 就會看到迴圈跑一跑就卡住的情況 10/30 20:59
9F:→ shadowjohn: 改成跑五支php cli,每支負責20個,丟背景跑 10/30 21:08
10F:推 howder5566: 用fopen的方式跑迴圈,我目前用這方法同時向100台機器 10/30 21:17
11F:→ howder5566: 要資料,起始時間都一樣,回來的時間也都差不多(依機 10/30 21:17
12F:→ howder5566: 器性能不同返回資料的時間也不同),都同時寫入資料庫 10/30 21:17
13F:→ howder5566: ,給你參考看看 10/30 21:17
14F:推 toy9986619: guzzle http可以一次送多個請求出去,所需時間大概是 10/30 21:59
15F:→ toy9986619: 回應最長的時間 10/30 21:59
16F:→ newversion: 要不要用curl keep alive http? 10/30 22:29