当旧请求在烧瓶中处理时如何保存新请求?

noo*_*der 1 python semaphore heroku request flask

我在 Flask 中创建了一个 python 应用程序。这是代码的骨架

app = Flask(__name__)

@app.route('/', methods=['GET'])
def authentication():
    '''athentication process'''
    return 'authenticated'
Run Code Online (Sandbox Code Playgroud)

因此,当用户调用该应用程序时,它将进行身份验证。但是,如果两个用户同时或在处理一个身份验证时调用该请求,我想保留新请求,直到旧请求完成,然后我想启动新请求。我尝试过semaphore但没有工作。这是我尝试过的

@app.route('/', methods=['GET'])
    def authentication():
        sem.acquire()
        '''athentication process'''
        sem.release()
        return 'authenticated'
Run Code Online (Sandbox Code Playgroud)

我已将其部署在Heroku. 知道我该如何实现这一目标吗?

PS:如果这不能完成,至少我想响应另一个请求正在处理的新请求,并在一段时间后重试

小智 5

简短的回答:不用担心。

这是网络服务器的工作。当您将应用程序托管在任何服务器(如 Apache、Nginx 等)中时,服务器会创建 Flask 应用程序的多个进程。当请求到来时,服务器程序会将其转发到任何空闲进程,如果没有进程空闲,服务器会将请求排队,直到一个进程变得自由。这是 HTTP 服务器如何工作的高级概述。