我不是专业的 Web 开发人员,但我喜欢将网站作为一种爱好。最近,我一直在开发一个 Rails 应用程序作为一个项目来帮助我学习框架。我的玩具应用程序的目标是通过他们的 API 从另一个服务收集数据,并让我可以使用搜索功能进行查询。
但是,我想从中提取数据的服务对每分钟可能执行的 API 调用数量施加了速率限制。我计划让我的应用程序每天运行一次更新,这可能会产生远远超过外部服务提供的限制的大量 API 调用。我希望尊重外部站点的性能,因此希望限制我的应用程序执行调用的速率。
我进行了一些搜索,我发现大量的教程 Material 和预建库涵盖了对 Web 应用程序的入站 API 调用进行节流,并且几乎找不到关于控制出站调用流的讨论。
作为一名业余 Web 开发人员和 Rails 新手,我完全有可能在错误的地方执行了错误的搜索。因此我的问题是:
我有一些关于如何使用 DelayedJob 或 Resque 等基于队列的工作程序来编写节流系统来管理 API 调用的想法,但如果有一个好的预已经在那里构建了解决方案。
最佳答案
没有人谈论出站节流的原因是它通常是微不足道的,因为你可以控制它。控制带宽可能有点困难,但控制请求数量?
ri Kernel#sleep
因此,如果您每分钟允许 10 次 api 调用,则每次调用后您只需 sleep(6)
关于ruby-on-rails - 限制 Rails 应用程序生成的出站 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806911/