【问题标题】:How to change api token when limit exceeds in python?python - 当限制超过python时如何更改api令牌?
【发布时间】:2014-01-10 08:40:09
【问题描述】:

我写了一个Diffbot API。它有 10,000 个调用和每秒 1 个调用。超过限制时我该怎么办?

【问题讨论】:

    标签: python diffbot


    【解决方案1】:

    您应该确保每秒只发出一次请求。对于面向前端的用户应用程序,您可能希望对请求进行排队,以免达到 1 次调用/秒的限制。

    当达到每月 10,000 次调用的限制时,您应该考虑为 API 使用付费 Diffbot。 250,000 次通话的入门级定价计划是 299 美元,这是相当高的。如果您只计划每月拨打少于 250,000 次电话,您可能只想注册另一个免费的开发者令牌。

    【讨论】:

      【解决方案2】:

      当您说您“编写了一个 API”时,这是否意味着您编写了一个 Python 库来访问它?如果是这样,当超出限制时,Diffbot API 将返回 429 错误,告诉您您已超出配额,根据 errors

      一旦发生这种情况,您将有多种选择,具体取决于您的需求。

      1. 如果您注册了多个免费试用令牌,请让您的 Python 脚本在初始化时使用它们的列表。一旦达到限制并检测到错误 429,请确保您的脚本丢弃它在该点之前使用的令牌,并移至下一个。显然,这类似于游戏系统,我建议不要这样做。
      2. 记录错误并让最终用户知道
      3. 开始为使用付费。如果您真的每 7 天抓取超过 10,000 个网站,您应该考虑通过购买商业令牌为实现这一目标的服务做出贡献。

      【讨论】:

        【解决方案3】:

        还有一些事情可以做。但是,这取决于您是否要继续使用它来确保您的应用程序的结果,并且只是希望找到一种最佳方式您想要停止(避免提出任何进一步的请求)。

        • 您可以在每个特定号码后拨打account API。调用次数并检查消耗的积分是否超过阈值,然后限制任何进一步的调用。这可以通过一个标志变量来实现,当超出限制时您可以翻转其值,这样就不会进一步调用。

        • 您还可以从父令牌中创建子令牌 here 然后对该令牌设置一些计算限制。后 也就是说,一旦超出限制,您可以决定是否要 通过再次更改令牌继续进行更多呼叫,否则它将 无论如何,限制任何进一步的调用。

          要实现这一点,您需要从外部来源获取令牌 在代码中然后调用一个可以替换其值的小作业 超过了第一个时间限制。所以下次API调用的时候 对 Diffbot 进行,令牌值将被更改,您将保留 得到响应。

        • 另一种提前采取行动的技术是运行 cron 每天或每周的作业/天蓝色功能,可以使用发布消息 一个关于当前账单周期消耗的信用的网络钩子,所以 我们知道状态。

          这是我长期以来一直在做的事情 这样我就可以及时采取必要的措施。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-06-25
          • 1970-01-01
          • 2020-12-20
          • 1970-01-01
          • 1970-01-01
          • 2015-09-18
          • 1970-01-01
          相关资源
          最近更新 更多