加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 处理API速率限制?

发布时间:2020-12-17 01:19:03 所属栏目:百科 来源:网络整理
导读:我有一个应用程序设置为每天一次调度多个API.这非常好用,但我知道我正在调用的一些API(例如Twitter)有一个速率限制.随着我正在进行的通话次数设置不断增长,有人可以推荐一种方法来限制我的通话,这样我就可以每小时/每分钟发送x的爆发等吗? 我找到了Glutton
我有一个应用程序设置为每天一次调度多个API.这非常好用,但我知道我正在调用的一些API(例如Twitter)有一个速率限制.随着我正在进行的通话次数设置不断增长,有人可以推荐一种方法来限制我的通话,这样我就可以每小时/每分钟发送x的爆发等吗?

我找到了Glutton Ratelimit宝石,是否有人使用这个并且它有什么用?还有其他我应该看的吗?

解决方法

如果您正在使用某种后台工作程序来执行API调用,则可以在重置速率限制时重新安排在下一个时间段重新执行的任务.
class TwitterWorker
  include Sidekiq::Worker

  def perform(status_id)
    status = Twitter.status(status_id)
    # ...

  rescue Twitter::Error::TooManyRequests
    # Reschedule the query to be performed in the next time slot
    TwitterWorker.perform_in(15.minutes,status_id)
  end
end

但是,没有科学的解决方案,例如如果您尝试在一天内执行比速率限制允许的更多API调用,则每次重新调度查询的风险.但在那之前,一些简单的事情可能会成功!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读