5

django を使用して django プロジェクトをデプロイしようとしていますが、次の質問が未解決です。

  • Web サーバーごとに 1 つの celeryd を実行する必要がありますか?
  • すべての Web サーバーにアクセス可能な別のマシン (ない) で celeryd を実行している別のマシンで、RabbitMQ サーバーを 1 つだけ実行する必要がありますか? または、RabbitMQ を各 Web サーバーでも実行する必要がありますか?
  • コードがすべての Web サーバーで同じ場合、定期的なタスクを使用するにはどうすればよいですか?

回答ありがとうございます。

4

1 に答える 1

6

それはプロジェクトのサイズに大きく依存します。理想的には、RabbitMq、セロリ ワーカー、および Web ワーカーを異なるマシンで実行することです。

必要な RabbitMQ は 1 つだけで、最終的には複数のキュー ワーカーが必要です (キューが大きいほど、もちろんより多くのワーカーが必要になります)。

Webworker ごとに 1 つのセロリ ワーカーは必要ありません。Webworker はタスクをブローカーに発行し、ワーカーはそこからタスクを取得します。実際、Webworker はブローカーと通信するだけなので、ブローカーに接続されているワーカーの量を気にしません。ブローカー。

もちろん、プロジェクトを開始する場合は、すべてを同じハードウェアに保持し、予算を低く抑えて、トラフィックとお金が流れるのを待つのが理にかなっています:)

セロリワーカー/ウェブサーバーなどに関係なく、実行中のアプリのすべてのインスタンスで同じコードを使用する必要があります。

于 2012-09-03T10:40:43.510 に答える