现在,我有一个php脚本,它从数据库中选择〜50000条记录,并为每条记录调用api,并基于api响应更新数据库中的记录状态。
我曾考虑过使用10个PHP文件(每个文件10克朗),并将50000条记录除以10,然后每个脚本只处理5000条记录。但是随着记录的增加,我必须创建更多的克朗。
我做对了还是有其他更好的方法吗?
答案 0 :(得分:1)
我从中看到的唯一问题是来自php的潜在执行时间,这可以通过set_time_limit()来解决。 至于内存量,您可以选择记录数,然后选择第n个索引,从而一次处理一个记录。 作为一种故障保护措施,可以在表中输入日期(或日期时间!)字段以记录每条记录的最后更新时间。如果发生错误,则该过程将能够从中断的地方开始。
我希望这会有所帮助!
答案 1 :(得分:1)
如果您的克朗过多,它们会互相绊倒。而且,为什么要使用cron?您会每天重复执行此任务吗?而是要做一项工作,将50000分成几部分并启动10个子进程来完成工作。
从CPU核心数量开始。如果API是CPU绑定的,那么这可能是最佳选择。
如果API在其他地方,则取决于您花费多少时间等待结果返回。
如果可能的话,以最慢的方式对事物进行批处理-API或从数据库中获取。
目标: