【问题标题】:Change gunicorn worker timeout inside request在请求中更改 gunicorn worker 超时
【发布时间】:2021-09-29 17:16:11
【问题描述】:

我有一个缓慢的请求,我想在处理该请求期间更改工作人员的超时时间,并且仅针对该请求。

基本上,我有一个烧瓶应用程序:


class Slow(Resource):

    def post(self):
        if slow_condition():
            gunicorn.how.to.extend.processing.time.here()
            do_something_slow()

api = Api(application)
api.add_resource(Slow, "/slow")

如果slow_condition 返回True,我想延长处理时间。如何更改单个请求的超时时间?

【问题讨论】:

    标签: python gunicorn flask-restful


    【解决方案1】:

    没办法。

    Flask 只是网络框架。框架对生产服务器和设置、工作人员等一无所知。顺便说一下,更改服务器配置您需要重新加载所有工作人员(重启gunicornuWSGIwaitress 等)。所以只能增加timeout parameter

    【讨论】:

    • 我知道 Flask 不知道 gunicorn 在它上面。但我希望通过某种方式(套接字?信号?魔法变量?)能够与 gunicorn 进行通信。
    • @GeorgeShuklin 您想更改工作人员超时时间而不重新加载。我不认为这是可能的。但是您能解释一下您要解决的问题吗?
    • 我们有一个很好的普通应用服务器,30秒对于所有任务来说绰绰有余。但是有一个调用,它有一个非常罕见和特殊的条件(在新服务器上提供),需要等待大约 5-7 分钟。我可以让它异步,但保持同步会让客户的生活更轻松。这是一种罕见的情况,我不想在工作人员超时 600 秒的情况下拨打其他电话...
    • @GeorgeShuklin 如果你同步解决问题请告诉我❤️
    猜你喜欢
    • 1970-01-01
    • 2012-06-06
    • 2021-12-19
    • 2020-11-27
    • 2019-10-29
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多