有没有办法使用 Celery 使用的 RabbitMQ 队列的长度来启动自动缩放组中的实例?

有没有办法使用 Celery 使用的 RabbitMQ 队列的长度来启动自动缩放组中的实例?

当队列长度超过阈值时,Celery 是否有办法发出事件?我想使用该事件启动 EC2 实例。

在 Celery 中,我们有两个队列用于执行两个不同的任务。其中一个队列的任务需要在自动缩放组中启动一个实例。在处理一种任务的第一个自动缩放组中,我们始终有一个实例在运行。然后,使用 Amazon CloudWatch 可以轻松启动另一个实例。但是对于另一个自动缩放组,如果没有任务,我们不希望它有任何实例,因为很多时候这个组可能没有要执行的任务。因此,只有当此任务的 Celery 队列长度超过给定阈值时,我们才会在此自动缩放组中启动一个实例。有什么好方法可以做到这一点?

答案1

我建议用 cron 任务发布当前队列长度作为CloudWatch 自定义指标,它将允许您根据其值创建自动缩放警报。

相关内容