RubyonRails-跟踪API对第三方服务的调用



我有一个第三方API服务,我通过我的Rails应用程序与之交互,它们的每日限制非常低。想知道追踪API调用的最佳方式是什么?

  • 数据库
  • Redis
  • 在内存中
  • 其他

我有一个进行所有调用的服务对象。只需要一个好的方法来跟踪每一个电话,而不是超过每日限额。

这是为以后偶然发现这一点的人准备的。

所以我设法找到了适合这个的东西。

基本上,我使用RailsCache并使用raw: true集设置一个密钥。

Rails.cache.fetch("unique_key", raw: true, expires_at: expiry_time)

这使我可以在向外部服务发送请求时增加该值。

Rails.cache.increment("unique_key")

我还将每日最大通话次数设置为恒定

MAX_DAILY_API_CALLS = 2000

如果达到限制,则使用自定义错误类来引发错误

class TooManyApiCallsToday < StandardError
def message
Rails.logger.info "MINDBODY: There is a daily limit of #{MAX_DAILY_API_CALLS} and it has been reached. It will reset at midnight."
end
end

raise TooManyApiCallsToday if @api_calls >= MAX_DAILY_API_CALLS

希望能有所帮助。

最新更新