Flask:新请求正在终止现有请求

Flask: New request is killing the existing request

我有一个 python flask 应用程序 运行,它接受列表格式的输入并使用 for 循环顺序处理每个列表项。 示例代码:

getitems= request.get_json()
for i in getitems:
  {perform some action on i}

输入列表的列表大小通常在数千个范围内,完成对所有项目的操作需要 20 分钟。但是,在这 20 分钟内 window 如果收到新请求,则烧瓶系统将忽略先前的请求并处理新请求。解决方案是什么?

我最初的想法是维护一个列表,该列表将存储从所有请求中收到的项目,然后单独处理它们。 代码片段:

listglobal = []
getitems= request.get_json()
listglobal =listglobal + getitems
for i in listglobal :
  {perform some action on i}
listglobal=[]

然而这似乎不起作用,它在收到新请求后仍然忽略旧请求。

你们很多人都想探索 celery。长 运行 任务最好异步处理。您可以让您的路线 return task_id 并跟踪处理是成功还是失败。查看下面的博客以获得详细说明。

https://blog.miguelgrinberg.com/post/using-celery-with-flask

PS: 这篇文章不是我写的,但我以前用它来解决类似的问题:)