web-dev-qa-db-ja.com

Celeryが自動スケールグループでインスタンスを開始するために使用するRabbitMQキューの長さを使用する方法はありますか?

キューの長さがしきい値を超えたときにCeleryがイベントを発行する方法はありますか?そのイベントを使用してEC2インスタンスを開始したいと思います。

Celeryには2つの異なるタスク用の2つのキューがあります。これらのキューの1つには、自動スケーリンググループでインスタンスを開始する必要があるタスクがあります。 1種類のタスクを処理する最初の自動スケーリンググループでは、常に1つのインスタンスが実行されています。その後、AmazonCloudWatchを使用して別のインスタンスを簡単に開始できます。ただし、他の自動スケーリンググループの場合、タスクがない場合はインスタンスを持たないようにします。これは、このグループによって実行されるタスクがない場合が多いためです。したがって、このタスクのCeleryキューの長さが指定されたしきい値を超えた場合にのみ、この自動スケーリンググループでインスタンスを開始します。これを行うための良い方法は何でしょうか?

4
web_ninja

現在のキューの長さを CloudWatchカスタムメトリックス として公開するcronジョブをお勧めします。これにより、その値に基づいて自動スケーリングアラームを作成できます。

7
ceejayoz