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

Bot*_*art 3 python message-queue redis flask flask-restful

一些上下文:

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

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

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

avi*_*jee 7

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

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