【问题标题】:Flask: New request is killing the existing requestFlask:新请求正在杀死现有请求
【发布时间】:2021-04-12 13:42:14
【问题描述】:

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

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

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

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

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

但是这似乎不起作用,并且在收到新请求后仍然忽略旧请求。

【问题讨论】:

    标签: python python-3.x api flask wsgi


    【解决方案1】:

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

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

    PS:这篇文章不是我写的,但我过去曾用它解决过类似的问题:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      相关资源
      最近更新 更多