Python Flask-如果对该路由的新请求到达,则停止处理该路由
所以我试图翻译通过客户GET请求发送的句子。客户机发送句子的速度相当快(想想每次更改单个字符时发送相同的句子),而处理一个句子需要相当长的时间(想想秒) 所以很多请求都是在短时间内发送的,我希望Flask在收到新请求时停止处理以前的请求 简单的例子:Python Flask-如果对该路由的新请求到达,则停止处理该路由,python,flask,server,Python,Flask,Server,所以我试图翻译通过客户GET请求发送的句子。客户机发送句子的速度相当快(想想每次更改单个字符时发送相同的句子),而处理一个句子需要相当长的时间(想想秒) 所以很多请求都是在短时间内发送的,我希望Flask在收到新请求时停止处理以前的请求 简单的例子: from flask import Flask, request app = Flask(__name__) @app.route("/api/translate") def translate(): sentence = request
from flask import Flask, request
app = Flask(__name__)
@app.route("/api/translate")
def translate():
sentence = request.args.get('sentence')
new = very_slow_fuction(sentence)
return new
我想我可以通过某种方式过滤掉同一个用户的请求(使用会话),但我不确定如何做到这一点(但我更喜欢这种解决方案)
在最坏的情况下,我可以限制客户端的请求,并仅在特定时间段(比如2秒)后发送这些请求
所以。。如果(从同一客户机)向同一路由发出新请求,如何停止处理Flask中的路由?服务器设置是什么?您不仅仅使用默认的开发服务器,对吗?我的意思是,你可以让芹菜在后台处理请求,或者让nginx限制请求,或者。。。你需要澄清设置。我已经把这个问题读了好几遍,我猜你正在使用开发服务器。他们反复声明Flask不是服务器是有原因的。开发服务器甚至不是Flask项目的一部分。看看你能做些什么来实现这一点是在你的烧瓶应用程序实现。芹菜是一个任务队列管理器,如果需要,可以使用revoke取消任务。>如图所示:@roganjosh是的,我使用的是默认的开发服务器。我认为Flask提供的正是您所说的它没有提供的——一个可以服务请求的服务器。鉴于上面的任务,你会建议使用什么?我给出的链接中的任何选项。您可以研究部署应用程序的方法。它在后面的主题中有非常详细的内容。注意,Django是一样的;开发服务器只是用于测试。一旦你的应用程序启动并运行,你需要一个合适的服务器来服务它。只有这样,你才能决定如何处理你的问题。