まず最初CELERY_CREATE_MISSING_QUEUES = False
に、私は celeryconfigを持っており、 celery worker -Q queue1
. queue1
が作成され、ワーカーがリッスンしていることをモニタリングで確認できます。ここで、(経由でCELERY_ROUTES
) にルーティングされるタスクを起動すると、それが作成されqueue2
ていることがわかります。queue2
誰かがこの動作を説明できますか? 注: 私が求めていることは、この質問とは異なると思います。なぜなら、結果を保存するために作成された一時キューの有効期間を見て、理解し、制御できるからです。私が知りたいのは、補助キューが作成されている理由です。
1 に答える
2
-Q
ワーカーが起動すると、セロリは引数や設定で明示的に指定されたキューを自動的に作成しますCELERY_QUEUES
。
このCELERY_CREATE_MISSING_QUEUES
設定は、ワーカーの起動時にこれら 2 つのメカニズムのいずれかを使用して指定されていない他のキューを参照します。たとえば、一覧にないキューをタスク デコレータの 1 つに指定するとします。
@app.task(queue='some-new-queue'):
def some_task(params):
pass
Celery がsome-new-queue
それが存在しないと判断すると、それが作成されますが、CELERY_CREATE_MISSING_QUEUES
設定が True の場合のみです。そうしないとエラーになります。
于 2015-04-29T18:01:38.893 に答える