首页 > 解决方案 > 使用 ratelimit lib 进行速率限制

问题描述

我正在尝试使用https://pypi.org/project/ratelimit/添加我的端点的速率限制。该应用程序位于 Flask 中。我的代码看起来像

@limits(calls=2, period=60)
@backoff.on_exception(backoff.expo, requests.exceptions.RequestException)
@endpoint
def contact():
    <some code to fetch data from DB>
    return "Success", 200

这是招摇应用。当我击中端点超过 2 次时,我得到 500 INTTERNAL SERVER ERROR on swagger 和 log 我得到ratelimit.exception.RateLimitException: too many calls。我想在 swagger 上显示自定义错误消息,表明这是因为 RateLimitException,然后显示应用的限制。我试过了

@limits(calls=2, period=60)
@backoff.on_exception(backoff.expo, requests.exceptions.RequestException)
@endpoint
def contact():
    try:
      <some code to fetch data from DB>
      return {"Success"}, 200
    except:
      return {"Rate limit exception"}, 500

上面的代码不起作用。我能得到一些帮助吗?如果我需要在此添加更多信息,请告诉我。

标签: flaskswaggerpython-3.6rate-limiting

解决方案


推荐阅读