我正在尝试仅通过一个调用来构建REST API。
有时,程序最多需要30秒才能返回响应。但是,如果用户认为服务滞后-他拨打了新电话,我的应用返回了错误代码500(内部服务器错误)的响应。
就目前而言,如果最后一个请求尚未准备就绪,我就可以阻止任何新请求。有什么简单的方法吗?
我知道有很多像Celery这样的排队管理器,但是我不希望我的应用程序有任何大的依赖关系/等重载。
答案 0 :(得分:0)
您可以使用 Flask-Limiter 来忽略来自该远程地址的新请求。
pip install Flask-Limiter
检查此快速入门:
from flask import Flask
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
app = Flask(__name__)
limiter = Limiter(
app,
key_func=get_remote_address,
default_limits=["200 per day", "50 per hour"]
)
@app.route("/slow")
@limiter.limit("1 per day")
def slow():
return "24"
@app.route("/fast")
def fast():
return "42"
@app.route("/ping")
@limiter.exempt
def ping():
return "PONG"
如您所见,在完成运行过程的同时,您可以在一段时间内忽略远程IP地址
检查这两个链接: