ruby-on-rails Ruby on Rails -跟踪对第三方服务的API调用

vecaoik1  于 2023-07-01  发布在  Ruby
关注(0)|答案(1)|浏览(106)

我有一个第三方API服务,我通过我的Rails应用程序与之交互,他们的每日限额相当低。想知道跟踪API调用的最佳方法是什么?

  • 数据库
  • 雷迪斯
  • 在记忆中
  • 其他

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

9cbw7uwe

9cbw7uwe1#

这是为任何人谁偶然发现这在以后的日期。
所以我想办法找到了一个适合这个的东西。
基本上,我使用Rails缓存并使用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
希望能帮上忙。

相关问题