问题描述
一些上下文:
想编写一个算法来接受来自客户端的票证。根据一些约束对它们进行排序,处理它们,并将结果回复给客户端。
我做了一些研究,虽然 Python 的 REST API 是个好主意。但是当我探索它时我发现,它通常是为了一次处理一个请求而构建的。
有没有办法将任务(REST API 请求)添加到队列中,对它们进行排序并与工作人员一起执行并在处理完成后回复客户端?
解决方法
我可以建议三种方法来做到这一点。
- 尝试使用数据库将请求内容、约束和状态存储为“待处理”。稍后,当您想要触发请求的处理时,只需按照您的约束按排序顺序检索它们并将状态更新为“已处理”。
- 您可以将 Redis 任务队列与烧瓶一起使用。见文章。 https://realpython.com/flask-by-example-implementing-a-redis-task-queue/
- 您还可以将 Celery 模块与 Flask 一起使用。请参阅文档。 https://flask.palletsprojects.com/en/1.1.x/patterns/celery/