提问,怎么使用 PHP 短时间内处理大量数据 
                            
                                                    
                        
                    
                    
  
                    
                    业务需求
- 现在数据库里面有5000个左右的数据
 - 每隔3分钟我要调用外部API接口更新每个数据的状态,也就是说我要调用5000次
 - 3分钟内必须更新完成,因为3分钟以后还要更新,每一次都要留下log,落下一次就有可能造成金额损失
 - 更新一个数据大概会用掉1~1.2秒的时间
 
面临的问题
以这个处理速度来看的话,3分钟内是肯定不能处理完5000个数据的更新,而且这个数据量很有可能增加,假设1~1.2秒的处理时间已经没有优化的空间。
这个项目是用Laravel6, PHP7.2.8构建的,现在是用laravel自带的schedule::run cron 每3分处理一次,现在是测试阶段,所以只处理100个左右,但是到线上的话就得处理5000个了
有什么方法解决呢
个人的想法
- 是把数据分散开来,并列执行 (具体怎么施行还没想清楚)
 - 真想不出来了
 
各位有什么好的建议吗?不吝赐教
2020-04-13 最近情况
这个系统现在向不用队列的方向发展
而是在Kernel.php中写死代码添加了PHP process
$offset_3 = 0;
$limit_3 = 100;
$totalKeywordCount = 500;
do {
       $schedule->command('autoprocess:min3', [$offset_3, $limit_3])->cron('*/3 * * * *')->runInBackground();
       $offset_3 += $limit_3;
} while ($offset_3 + $limit_3 < $totalKeywordCount);
这么整的话5000个可能是够呛,但是首先要确定这个方法的极限处理量,所以待我继续更新项目的走势吧。
          
                    
                    
            
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: