对于基于Python/Django的/芹菜部署工具,我们有以下设置:如何布置队列/工作人员结构以支持多个环境的大型任务?
- 目前,我们使用默认的设置芹菜。 (一个队列+交换称为“芹菜”。)
- 队列上的每个任务都表示一个部署操作。
- 环境的每个任务都以可能需要(很长)的同步阶段结束。
以下规格需要满足:
- 并发:任务多个环境应同时进行。
- 锁定:可能有最多一个任务同时为每个环境运行(即环境锁定)。
- 吞吐量优化:当单个环境中存在多个任务时,它们的同步阶段可能会合并以进行优化。因此,如果任务接近结束,它应该检查队列中是否有新任务等待这个环境,如果是,则跳过其同步阶段。
实现此目的的首选方法是什么?
的几点思考:
- 我想说,我们必须建立多个队列:一个为每个环境,并有ñ芹菜工人处理单个队列完全,每个。 (这将解决规格1 + 2。)
但是,我们如何让多名芹菜工人专门听不同的队列? - 有没有一种清楚的方式知道有更多的任务在队列中等待环境?