3

プロジェクトの要件にセロリを使用しています。現在、デフォルトのキューとともにキュー「HighPriorityQueue」を作成しました。つまり、1 つのワーカーと 2 つのキューがあります。

これらの両方のキューにキューイングされるさまざまなタスクがあります。タスクがキューに入れられるたびに「HighPriorityQueue」を処理する必要があります。

私の疑問は、セロリがこのキューをどのように処理するかということです? セロリはキューを並行して処理しますか? または、一部のタスクが「HighPriorityQueue」にキューに入れられている場合、デフォルトのジョブに既にキューに入れられているジョブに関係なく、すぐに処理する必要があるようにすることはできますか?

事前にアドバイスと感謝をお願いします。

4

1 に答える 1

0

おっと、古い質問...

Celery は一連のキューに優先順位を付けることができません。最善の選択肢は、 のみを消費する優先度の高いワーカー プールと、 +または `defaultのみを消費HighPriortyQueueするデフォルト ワーカー プールを用意することです。defaultHighPriorityQueue

一部のメッセージ ブローカー (確かに RabbitMQ ) では、キュー内で優先度を設定できます。基本的には、重要なメッセージを一番上にあるキューにプッシュして最初に消費します。その後、1 つの Celery ワーカーがそれらのメッセージを愚かに消費し、基本的に必要なことを達成できます。ただし、キューレベルでこれを行うには、独自の課題/落とし穴があります。

于 2018-12-11T14:43:57.743 に答える