首页 > 解决方案 > 给定时间后 Flask 客户端-服务器连接超时

问题描述

我有一个烧瓶应用程序。如果服务器在规定的时间内(比如 20 秒)没有响应,我希望客户端-服务器连接终止。我在这里读到session.permanent = True可以设置。我有点不清楚这在服务器端代码中的位置(如果这就是这种方式??)。

为简单起见,我将包含我拥有的最少的服务器端代码。实际上,服务器正在执行文件读/写操作并将结果返回给客户端。

from flask import Flask, session, app
from flask_restful import Api, Resource
from datetime import timedelta

app = Flask(__name__)
api = Api(app)

class GetParams(Resource):
    def get(self):
        print ("Hello.")
        return 'OK'

api.add_resource(GetParams, '/data') 
if __name__ == '__main__':
    app.run(host='127.0.0.1', port=5002) 

谁能告诉我我应该在这里做什么,以便在服务器没有响应时终止我的客户端和服务器之间的连接,即在 20 秒内将数据发送回客户端?

标签: pythonflask

解决方案


长时间运行的任务应该在不同的设计中处理,因为如果您允许您的服务器将请求保持 50 分钟,您不能强制用户浏览器这样做。

我建议将长时间运行的任务实现为一个线程,一旦完成就会通知用户。

有关问题陈述和建议解决方案的更多阅读:

  1. chrome和flask的超时问题
  2. 长请求时间模式

推荐阅读