私はCeleryとDjangoを使用してタスクキューを管理し、1つ(または複数)の小さな(シングルコア)EC2インスタンスを使用してタスクを処理しています。
いくつかの考慮事項があります。
- 私のタスクは、シングルコアで100%のCPUを消費します。-使用可能なCPUを使用しますが、1つのコアのみを使用します
- 同じコアで2つのタスクが進行中の場合、各タスクの速度は半分になります。
- 私は各タスクをできるだけ早く開始したいと思います。
ここで、4つのEC2インスタンスがあるとすると、「-c5」でセロリを開始します。つまり、インスタンスごとに5つの同時タスク。
このセットアップでは、4つの新しいタスクがあり、idが確実にしたい場合、4つが同じインスタンスに移動し、各タスクがCPUを争うのではなく、それぞれが異なるインスタンスに移動します。
同様に、8つのタスクがある場合、2つのインスタンスがそれぞれ4つのタスクを処理するのではなく、各インスタンスのように一度に2つのタスクを取得します。
セロリはすでに私が説明したように動作しますか?そうでない場合、どうすればそのように動作させることができますか?