现在,我有一个php脚本,它从数据库中选择~50000条记录,并为每个记录调用api,并根据api响应更新数据库中的记录状态。
我曾经考虑过使用10个php文件,每个文件从10个crons运行,并将50000条记录除以10,然后每个脚本只需要处理5000条记录。但是随着记录的增加,我不得不创造更多的crons。
我做得对吗?还是还有其他更好的方法?
发布于 2019-04-24 18:24:27
如果你有太多的官员,他们会绊倒对方。为什么要用cron?你会每天重复这个任务吗?相反,有一个任务分配50000并启动10个子进程来完成这项工作。
从CPU有核心的多个cron开始。如果API是cpu绑定的,这可能是最优的.
如果API位于其他地方,则取决于您等待结果返回所花费的时间。
如果可能的话,批处理任何最慢的部分-- API或从数据库中获取。
目标:
发布于 2019-04-16 14:52:17
我从这里看到的唯一问题是来自php的潜在执行时间,这可以用极限()解决。至于内存量,您可以选择记录的计数,然后选择第n个索引,从而一次处理一个记录。作为一个故障安全措施,日期(或日期时间!)字段可以输入到表中,以记录上次更新每条记录的时间。在出现错误的情况下,该进程将能够提取其停止的位置。
我希望这能帮到你!
https://stackoverflow.com/questions/55705701
复制相似问题