[请益] 有没有这种多工的函数

楼主: 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