Celery で次のシナリオを実装しようとしています: (同じ) 長時間実行タスクの 2 つのキュー、1 つは「通常」優先度、もう 1 つは「アイドル」優先度。
ワーカーに両方のキューを監視させ、最初に「通常の」優先度キューからタスクを取得し、空の場合は「アイドル」優先度からタスクを取得します。
私の質問は: ワーカーがタスク キューをチェックする順序を保証することは可能ですか? また、これは優先事項を実装するための正しいアプローチですか?
背景: タスクは ffmpeg トランスコーディング ジョブを実行しています。「通常」の優先度は、入ってくる新しいビデオ (できるだけ早くトランスコードする必要があります) であり、「アイドル」の優先度は、古い (40.000 以上のビデオ) アーカイブを更新された形式設定に再トランスコードするタスクです。マルチサーバー タスクのディスパッチに使用できるサーバーがいくつかありません。