基于代理(redis)队列大小自动调整芹菜服务器的方法

我正在开发一个项目,如果代理(redis)队列持续高于预定的阈值大小,并且在队列大小减less时杀死新的代理服务器,则需要部署新的celery服务器。 我有脚本来照顾介绍新的盒子,并确保正确的configuration正在运行。 我计划通过频繁(15分钟)的间隔通过redis-cli检查队列,如果大小超过阈值,则将检查(例如3分钟)检查两次之间的时间间隔调低,然后推出新的框并按照相同的方法杀死新的服务器。

我对芹菜是新鲜的,如果我能就这种方法得到一些build议,那将是非常好的。

谢谢

如果您正在使用EC2自动缩放组,这可能非常简单。 我正在做类似的事情,但与RabbitMQ队列长度。

定期检查队列长度,然后决定一定的队列长度,需要多less工人。 然后,您可以使用ASG API(或命令行工具)根据您需要的工作人员数量设置组的“所需容量”。 然后,ASG负责根据需要创build和终止实例。