【发布时间】:2020-05-07 20:12:18
【问题描述】:
我正在用 Flask API 和 React 构建一个应用程序。
应用程序的第一页向用户展示了一个上传文件表单。用户选择一个文件 (700 MB) 并点击上传。
完成后,后端:
- 获取文件,解压缩
- 运行一些机器学习模型
- 返回一个包含正确数据的 JSON
结束后,react 获取 JSON 并呈现一个新页面。
这三个步骤需要 10 分钟以上,因此我收到错误 500,我认为这是由于长时间请求超时造成的。
我想知道是否有办法制作timeout=None。
我寻找了一些答案,他们建议使用Celery。但是,我不确定这是否适合我的任务。
【问题讨论】:
-
这能回答你的问题吗? Making an asynchronous task in Flask
-
虽然您可以增加超时时间,但这不是一个可靠的解决方案。请参阅stackoverflow.com/questions/31866796/… 了解实现目标的不同方法。
-
根据模型完成工作的时间,通过某种事件解决这个问题可能会更好。
-
@TheIncorrigible1 谢谢,你能告诉我更多细节吗?
-
解释“事件驱动架构”的范围超出了本网站的范围,但这是我建议查找的关键字。使用 websocket 或类似性质的东西开始工作可能会很幸运。