nvi*_*vie
12
python
django
celery
对于基于Python/Django/Celery的部署工具,我们有以下设置:
- 我们目前使用默认的Celery设置.(一个队列+交换称为"芹菜".)
- 队列上的每个任务代表一个部署操作.
- 环境的每个任务都以可能需要(非常)长的同步阶段结束.
需要满足以下规范:
- 并发:多个环境的任务应该同时执行.
- 锁定:每个环境最多可以同时运行一个任务(即环境锁定).
- 吞吐量优化:当单个环境有多个任务时,可以组合它们的同步阶段以进行优化.因此,如果任务接近其结尾,则应检查队列中是否有新任务在此环境中等待,如果是,则跳过其同步阶段.
实现这个的首选方法是什么?
一些想法:
- 我想说我们必须设置多个队列:每个环境一个队列,并且N个芹菜工人独自处理一个队列.(这将解决规范1 + 2.)
但是,我们如何让多个芹菜工人专门听不同的队列?
- 是否有一种干净的方式可以知道队列中有更多任务在等待环境?