0

メッセージキューにセロリを使用する小さなテストを実装しましたが、基本的なレベルでどのように機能するかを理解したいだけです(Django-Celery、Redisをブローカーとして使用)。

私の理解では、非同期タスクを開始するために呼び出しを行うと、タスク情報がredisに配置され、ブローカーに接続されたcelerydインスタンスがタスクを消費して実行します。これは本質的に何が起こっているのですか?

1時間に1回実行されるはずの定期的なタスクを設定した場合、そのタスクはすべてのタスクコンシューマーで実行されますか?もしそうなら、1人の消費者だけが定期的なタスクを実行するようにそれを制限する方法はありますか?

4

1 に答える 1

2

workersは、ブローカーに含まれるのと同じ数のメッセージを消費します。ワーカーが8つあるが、メッセージが1つしかない場合、8つのワーカーのうち1つがメッセージを消費し、タスクを実行します。

于 2011-11-04T19:13:38.527 に答える