我正在开展一个项目,该项目要求在代理(redis)队列持续高于预定阈值大小时推出新的 celery 服务器,并在队列大小下降时关闭新的框。我有脚本来负责引入新框并确保在其上运行正确的配置。我计划在频繁(15 分钟)间隔后通过 redis-cli 检查队列,如果大小大于阈值,则缩短检查之间的时间间隔(例如 3 分钟)检查两次,然后推出新的框并按照相同的方法关闭新服务器。
我对芹菜还不熟悉,如果能得到一些关于这种方法的建议就太好了。
谢谢
答案1
如果您使用 EC2 自动扩展组,这可能非常简单。我正在做类似的事情,但使用 RabbitMQ 队列长度。
定期检查队列长度,然后确定特定队列长度所需的工作线程数。然后,您可以使用 ASG API(或命令行工具)根据所需的工作线程数设置组的“所需容量”。然后,ASG 会根据需要负责创建和终止实例。