首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为大型数据更新和多个API调用优化cron和PHP脚本

问如何为大型数据更新和多个API调用优化cron和PHP脚本
EN

Stack Overflow用户
提问于 2019-04-16 10:10:45
回答 2查看 689关注 0票数 0

现在,我有一个php脚本,它从数据库中选择~50000条记录,并为每个记录调用api,并根据api响应更新数据库中的记录状态。

我曾经考虑过使用10个php文件,每个文件从10个crons运行,并将50000条记录除以10,然后每个脚本只需要处理5000条记录。但是随着记录的增加,我不得不创造更多的crons。

我做得对吗?还是还有其他更好的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-24 18:24:27

如果你有太多的官员,他们会绊倒对方。为什么要用cron?你会每天重复这个任务吗?相反,有一个任务分配50000并启动10个子进程来完成这项工作。

从CPU有核心的多个cron开始。如果API是cpu绑定的,这可能是最优的.

如果API位于其他地方,则取决于您等待结果返回所花费的时间。

如果可能的话,批处理任何最慢的部分-- API或从数据库中获取。

目标:

  • 最大限度地利用你的资源。
  • 不要超出你的资源所能达到的目标。(如果10个PHP使CPU饱和,那么增加到100个就不好了。)
  • 注意API中的速率限制。(有一个地方限制我每分钟10分钟,所以我不得不放慢速度以避免API中的错误!)
票数 1
EN

Stack Overflow用户

发布于 2019-04-16 14:52:17

我从这里看到的唯一问题是来自php的潜在执行时间,这可以用极限()解决。至于内存量,您可以选择记录的计数,然后选择第n个索引,从而一次处理一个记录。作为一个故障安全措施,日期(或日期时间!)字段可以输入到表中,以记录上次更新每条记录的时间。在出现错误的情况下,该进程将能够提取其停止的位置。

我希望这能帮到你!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55705701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档