Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask-如果对该路由的新请求到达,则停止处理该路由_Python_Flask_Server - Fatal编程技术网

Python 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

所以我试图翻译通过客户GET请求发送的句子。客户机发送句子的速度相当快(想想每次更改单个字符时发送相同的句子),而处理一个句子需要相当长的时间(想想秒)

所以很多请求都是在短时间内发送的,我希望Flask在收到新请求时停止处理以前的请求

简单的例子:

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是一样的;开发服务器只是用于测试。一旦你的应用程序启动并运行,你需要一个合适的服务器来服务它。只有这样,你才能决定如何处理你的问题。