【问题标题】:how to hold new request when old request is processing in flask?当旧请求在烧瓶中处理时如何保持新请求?
【发布时间】:2021-02-06 04:35:18
【问题描述】:

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

app = Flask(__name__)

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

所以当用户调用应用程序时,它会进行身份验证。但是如果两个用户同时或在处理一个身份验证时调用它,我想保留新请求直到旧请求完成,然后我想开始新请求。我试过semaphore 但没有用。这是我尝试过的

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

我已经在Heroku 中部署了它。知道如何实现这一目标吗?

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

【问题讨论】:

    标签: python flask heroku request semaphore


    【解决方案1】:

    简短回答:别担心。

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

    【讨论】:

    • 不,它似乎没有在 heroku 服务器上工作(我只使用一个工人)
    • 我不知道 heroku ,但这绝对不是 Flask 问题,它必须在 http 服务器上处理。你最好检查 heroku 文档来扩展服务器,你可以设置一些配置来解决你的问题
    猜你喜欢
    • 2014-07-23
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 2018-08-22
    相关资源
    最近更新 更多