【PHP】跑大批量数据脚本
代码基于thinkphp, linux环境,php7.2 亲测了100万数据
命令
php /home/data/laofan/public/index.php index/test/run 1>/home/data/laofan/public/run.log 2>/home/data/laofan/public/run_err.log
完整脚本代码
<?php
namespace Index\Controller;
/**
* 处理大批量数据脚本
* 依然范儿特西
*
*/
use Think\Controller;
use Think\Log;
class TestController extends Controller
{
public function index()
{
echo 'hello laofan'.PHP_EOL;
$page = 1;
while($page <= 50) {
echo $page.PHP_EOL;
$page ++ ;
}
}
//run
public function run()
{
$author_uid = '123';
$limit_num = 1000; //每页处理条数
//页码
$page = 1;
//100万数据,每次处理1000条,所以要处理1000次
while($page <= 1000) {
$this->toRun($author_uid,$page,$limit_num);
$page ++ ;
}
}
private function toRun($author_uid,$page,$limit_num){
echo "开始执行, 数据来源:".$author_uid." 第".$page.'页,预处理数目:'.$limit_num.PHP_EOL;
set_time_limit(0);
$page_start = ($page-1) * $limit_num;
$data_list = M("table_name")
->field('id, other')
->where(['author_uid'=>$author_uid])
->limit($page_start,$limit_num)
->select();
if(!empty($data_list)){
foreach ($data_list as $key=>$value) {
try {
//执行操作
echo "success".json_encode($value);
} catch (\Exception $e) {
echo '警告: 此数据异常:'.json_encode($value);
continue;
}
}
echo "处理完成,实际处理数目:".count($data_list).PHP_EOL;
unset($data_list);
}else{
exit('无数据执行');
}
}
}
具体使用,可以根据自己业务做调整,仅供参考
欢迎做技术的朋友一起沟通交流!伸手党请绕道,
代码改变世界QQ群:453011886
分类:
PHP
, PHP-Thinkphp
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决