求 php 循环执行大量数据 解决办法。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求 php 循环执行大量数据 解决办法。相关的知识,希望对你有一定的参考价值。
用for循环的时候 从1循环到100万 都很快
现在关键是 不是这么简单的 1-100万循环
是每次循环 都需要请求一个 url 来采集 上面的内容。
最小循环是500-1000次
最大的循环是5000-10000次
循环的时候 又不是一个人循环 有可能是 100个人 同时点击 循环采集。
求一个性能优化方案!
最好是换种方式实现,不要通过网页进行采集。
可以非常简单的在数据库的表,创建一个采集队列,后台执行一个crontab的计划任务,去完成队列里的采集任务。 参考技术A
分页处理:
1.如果是查询的数据库 那么就加 limit
2.如果是数组,就采用数组分页;
参考
$page = (int)$_GET['page'];$page = $page?$page :1;
$limit = 100;
$count = count($excelData);
if ($page*$limit >$count)
exit('执行完成');
$excelData = array_slice($excelData, ($page-1)*$limit ,100);
if($excelData)
foreach($excelData as $k=>$v)
...
参考技术B 配合 AJAX 制作。
php 每次请求只采集一个 URL
在浏览器那边用 JS 循环。
反正你采集这么多数据,用户也要等半天。不如用 AJAX 采集到一条看一条。
这样一来,顶多就是像聊天室刷数据。。服务器表示鸭梨不大。。 参考技术C 你这是做小说采集的吧?
现在好像很多这种站,原理都大同小异。
我这有一个案例,你可以以参考下:https://www.biquts.com 参考技术D 是个缓存不久好了!
以上是关于求 php 循环执行大量数据 解决办法。的主要内容,如果未能解决你的问题,请参考以下文章