私は複数のキューを持っていますが、これはQ1
とQ2
です。Celery:タスクのキューを制限する
私もいくつかのタスクを持っています。そのうちの1つはT1
です。
作業員がをQ1
からのみ受け取り、T1
をQ2
から受け入れないようにセラーを設定するにはどうすればよいですか?
私は複数のキューを持っていますが、これはQ1
とQ2
です。Celery:タスクのキューを制限する
私もいくつかのタスクを持っています。そのうちの1つはT1
です。
作業員がをQ1
からのみ受け取り、T1
をQ2
から受け入れないようにセラーを設定するにはどうすればよいですか?
セロリでこれを達成することができますapps。さまざまな種類のタスクをさまざまなアプリに登録し、それらのアプリのみでワーカーを実行します(たとえば、セラーワーカーコマンドで-A myapp
の設定を参照)。
また、different queuesという簡単なルートを使用すると、成功する可能性があります。したがって、T1をqueue1に、T2をqueue2に送信するだけの場合は、-Q queue1
をCeleryワーカーに使用することができます。そのため、たとえばqueue1からのタスクのみが必要です。
あなたの労働者を起動すると、あなたは彼
celery -A proj worker -Q queue_name
のキューを指定することができます。しかし、私の労働者は 'Q1'を聞き、そこだけ' T1'を期待している場合、クライアントの一つは、まだ 'T2'にを送ることができます'Q1'とセロリはまだ' T2'が登録されたタスクなので、それをうれしく受け入れます。私が間違っている? – Art
私は唯一の方法は別のアプリケーションで行くことを恐れています。 Celery + Djangoを複数の 'celery.py'で実行しようとするといくつかの問題がありますが、それは扱いやすいと思います。 – Art
@Artはい。だから、もしあなたが 'T1だけをqueue1という名前のキューに送ることができたら'と言いました。 – tayfun