21

Celeryでタスクごとのレベルで同時実行数 (同時ワーカー数) を設定することは可能ですか? CELERYD_CONCURRENCY(デーモン全体の同時実行性を設定する)もっときめ細かいものを探しています。

使用シナリオは次のとおりです。非常に異なるパフォーマンス特性を持つさまざまなタイプのタスクを実行する単一の celerlyd があります。高速なものもあれば、非常に遅いものもあります。できる限り多くのことをできる限り迅速に実行したい場合もあれば、常に 1 つのインスタンスのみが実行されるようにしたい場合もあります (つまり、同時実行数 1)。

4

1 に答える 1

30

自動ルーティングを使用して、異なる同時実行レベルのセロリワーカーによって処理される異なるキューにタスクをルーティングできます。

celeryd-マルチスタート高速低速-c:低速3 -c:高速5

このコマンドは、それぞれ3レベルと5レベルの同時実行レベルで高速キューと低速キューをリッスンしている2人のセロリワーカーを起動します。

CELERY_ROUTES = {"tasks.a":{"queue": "slow"}、 "tasks.b":{"queue": "fast"}}

タイプtasks.aのタスクは、それぞれ低速キューによって処理され、tasks.bタスクは高速キューによって処理されます。

于 2012-02-06T23:34:16.053 に答える