我目前在 Flask 应用程序中有一条路由,它从外部服务器提取数据,然后将结果推送到前端。外部服务器有时很慢或没有响应。在路由调用上设置超时的最佳方法是什么,以便在外部服务器滞后时前端不会挂起?还是有更合适的方法来处理 Flask(不是 Apache、nginx 等)中的这种情况?
我的目标是让路由调用超时,而不是像这个 SO 问题那样保持任意长时间的进程:Time out issues with chrome and flask。像 websockets 这样的选项会运行后台进程/线程,直到它们完成;但是,我想在经过一段固定的时间后停止慢速路由呼叫。就像函数调用上的超时和Python 超时一样,但在 Flask 上下文中。Celery 的任务装饰器(使用 Python、Flask 和 Celery 的并发异步进程)似乎是一个很好的解决方案,但我不希望需要大量依赖来仅使用其少量功能。