楼主:
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()
哪里慢?网络慢?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 就会看到循环跑一跑就卡住的情况
改成跑五支php cli,每支负责20个,丢背景跑
作者: howder5566 (好der5566) 2018-10-30 21:17:00
用fopen的方式跑循环,我目前用这方法同时向100台机器要资料,起始时间都一样,回来的时间也都差不多(依机器性能不同返回资料的时间也不同),都同时写入数据库,给你参考看看
guzzle http可以一次送多个请求出去,所需时间大概是回应最长的时间
要不要用curl keep alive http?