通过PHP循环处理大量请求


Loop through a large number of requests via PHP

我正在开发一个WordPress插件,通过WordPress wp_remote_get()函数获取用户Instagram配置文件信息并存储在数据库中。每24小时运行一次Corn作业,每天更新用户的Instagram信息。问题是我有大约5000+用户,脚本运行时间太长,任务从未完成。当用户数量低于<1000.

我应该改变PHP .ini中的哪些PHP设置来解决这个问题?我把max_execution_time设为0。还有其他设置吗?有什么建议吗?

我建议你这样做

  • 创建多个调用同一个文件的cron作业

  • 更新后的用户。

  • 不更新任何被标记为已更新的用户

  • 将更新功能设置为事务(全部完成或全部取消)

  • 最后增加超时时间也不错

在不知道您的具体场景的情况下很难做出有效的建议,但我会更改您的代码,使其仅在需要时访问instagram配置文件,而不是通过cron job为每个人访问。首先,信息会更"新鲜",其次,你会避免遇到你所描述的问题。

例如,当用户访问他们的个人资料时,会调用Instagram并提取数据。您可以像以前一样将数据存储在数据库中,只是使用时间戳。同样在代码中,确保它不会提取数据,除非距离上次刷新已有24小时。