PHP 中的 API 调用时间调节


API Call Time Regulation in PHP

所以我不是100%确定如何问这个问题。我正在构建一个网站,该网站将对API进行多次调用以收集和存储信息。不足为奇。经过一些测试和理论,如果网站要收集与我预测的一样多的流量,我可以轻松打破对 API 施加的每秒 30 次调用的限制。调用将由 cron 发起。然后,脚本将对 API 进行 30 次调用。我需要一种方法来减慢脚本的速度,以便每秒进行 5 次左右的调用,数据存储在数据库中,脚本完成,然后在下一分钟顶部由 crontab 再次运行。任何建议不胜感激。

谢谢戴夫

速度

放慢速度很容易:在每个 API 调用之间添加一些 usleep(( 调用。你可以对调用进行硬编码,比如每秒 1/5,一秒最多做 5 次,或者你可以记录你正在拨打的电话数量,只在需要时开始放慢速度。

更简单的是,您可以拨打 5 个电话,

等待 1 秒钟,然后再打 5 个电话。

无论您调用脚本的频率如何,这都有效。

阻止并发脚本执行

要担心的另一件事是重叠调用(同时多次运行脚本(。显然,如果您最终让脚本运行多次,则您投入的时间并不重要。

如果您调用脚本的频率不够低,并且绝对确定它不会重叠,那么您可能可以什么都不做。

可以肯定的是,您可以实现锁定机制。这可以像在脚本启动时检查的锁定文件一样简单。如果存在,请退出。否则,请创建锁定文件,运行脚本,然后删除锁定文件。作为故障保护,您不仅可以检查它是否存在,还可以检查它是否在过去一小时内创建(或您想要使用的任何安全裕度(。