0

Celery には、N 秒ごとに実行される 4 つのスケジュールされたタスクがあります。現在、アプリケーション ロジックは、タスクごとに 1 つのワーカーのみを提供します (db からデータを読み書きし、並列実行は許可されません)。

しかし、CELERYD_CONCURRENCY = 1 を使用して、すべてのタスクに対して 1 つのワーカーしか設定できません。

タスクごとに単一のワーカーを設定するにはどうすればよいですか? ありがとう

4

1 に答える 1

0

4 つのタスクを並行して実行したくないということですか? その場合は、サブタスクの「チェーン」のようなものを使用する必要があります。以下を参照してください。

http://docs.celeryproject.org/en/latest/userguide/canvas.html#chains

| を使用してタスクをチェーンに追加するだけです。演算子を作成し、delay() または async_delay() で実行します。そうすれば、次のタスクは、前のタスクが完了した後にのみ開始されます。そして、プールから 1 つのワーカーが各タスクに割り当てられます (同じワーカーでも別のワーカーでもかまいません)。

于 2013-02-19T08:15:38.570 に答える