PHP循环遍历耗时操作,有什么优化方法

iPartoo 发布于 2017/07/11 16:22
阅读 703
收藏 1
PHP

比如现在的情况是从页面中抓取数据,开始的时候数据有些多,如下图:


伪代码如下:

scrapePage($pageNum) {//fetch data from each page}

for($currentPage = 1; $currentPage < $totalPages; $currentPage++)

{

  scrapePage($currentPage);

}

scrapePage方法是一个相对耗费时间的方法,在遍历次数少(本例中$totalPages)的情况下,是可以正确运行的,但页面多的话毫无疑问会遇上timeout。抛开解决504 timeout的方法不谈,这种简单暴力的循环肯定有更好的方法。
我想,有没有一种类似‘异步’的方式,抓取当前页面成功后,返回一些提示数据,同时根据分页信息进行下一页的抓取工作。
另外,Laravel中的Job Queues 是否能行?
想请教一下,谢谢了。

加载中
0
酒逍遥
酒逍遥

直接用 pthreads 就好啦

0
xinson
xinson

用python!!

0
宇润
宇润

长时间任务用cli运行

0
艾恩
艾恩
前台ajax一页页查
0
梅开源
梅开源

长时间任务尽量CLI

可以任务分解,一个爬虫专门沿着路径爬取url,再把url内容存下来,另外一个负责分析处理。

0
小虫0302
小虫0302
@红薯 这是什么鬼问题呀,手机上回答问题打了一大段,提交过后什么提示也没有,刷新我的回答不见了。。。
0
c
cqcqphper

http://git.oschina.net/cqcqphper/taskPHP  定时计划任务框架,cli模式运行,多进程,多线程,运行效率不错。

返回顶部
顶部