Python Flask:如何在执行之前将请求添加到队列并重新排列队列中的任务

问题描述

一些上下文:

想编写一个算法来接受来自客户端的票证。根据一些约束对它们进行排序,处理它们,并将结果回复给客户端。

我做了一些研究,虽然 Python 的 REST API 是个好主意。但是当我探索它时我发现,它通常是为了一次处理一个请求而构建的。

有没有办法将任务(REST API 请求)添加到队列中,对它们进行排序并与工作人员一起执行并在处理完成后回复客户端?

解决方法

我可以建议三种方法来做到这一点。

  1. 尝试使用数据库将请求内容、约束和状态存储为“待处理”。稍后,当您想要触发请求的处理时,只需按照您的约束按排序顺序检索它们并将状态更新为“已处理”。
  2. 您可以将 Redis 任务队列与烧瓶一起使用。见文章。 https://realpython.com/flask-by-example-implementing-a-redis-task-queue/
  3. 您还可以将 Celery 模块与 Flask 一起使用。请参阅文档。 https://flask.palletsprojects.com/en/1.1.x/patterns/celery/