作者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/cn.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