2017-09-27 31 views
0

私は複数のキューを持っていますが、これはQ1Q2です。Celery:タスクのキューを制限する

私もいくつかのタスクを持っています。そのうちの1つはT1です。

作業員がをQ1からのみ受け取り、T1Q2から受け入れないようにセラーを設定するにはどうすればよいですか?

答えて

2

セロリでこれを達成することができますapps。さまざまな種類のタスクをさまざまなアプリに登録し、それらのアプリのみでワーカーを実行します(たとえば、セラーワーカーコマンドで-A myappの設定を参照)。

また、different queuesという簡単なルートを使用すると、成功する可能性があります。したがって、T1をqueue1に、T2をqueue2に送信するだけの場合は、-Q queue1をCeleryワーカーに使用することができます。そのため、たとえばqueue1からのタスクのみが必要です。

+0

のキューを指定することができます。しかし、私の労働者は 'Q1'を聞き、そこだけ' T1'を期待している場合、クライアントの一つは、まだ 'T2'にを送ることができます'Q1'とセロリはまだ' T2'が登録されたタスクなので、それをうれしく受け入れます。私が間違っている? – Art

+0

私は唯一の方法は別のアプリケーションで行くことを恐れています。 Celery + Djangoを複数の 'celery.py'で実行しようとするといくつかの問題がありますが、それは扱いやすいと思います。 – Art

+0

@Artはい。だから、もしあなたが 'T1だけをqueue1という名前のキューに送ることができたら'と言いました。 – tayfun

0

あなたの労働者を起動すると、あなたは彼

celery -A proj worker -Q queue_name 
関連する問題