1

現在、本番環境で実行されている 5 つのワーカー プロセスを含む django-celery プロセスがあります。タスクを適切に受け取り、実行します。liveこれらのプロセスは、 との 2 つのキューに挿入されるタスクを実行しますcelery

セロリプロセスを実行するために使用されるコマンドは、おおよそ次のとおりです。

manage.py celeryd -E --loglevel=WARNING --concurrency=5 \
         --settings=django_settings.production_celery -Q live,celery

と呼ばれる別のキューでさまざまなタスクを処理することになっている新しいシステムを構築しましたfoobar。これらのセロリ プロセスは、おおよそ次のようなコマンドで実行されます。

manage.py celeryd -E --loglevel=WARNING --concurrency=5 \
         --settings=django_settings.production_foobar -Q foobar

ただし、を使用して新しいキューでタスクを実行しようとするとmy_task.apply_async(queue='foobar')、結果オブジェクトはPENDING無期限に状態のままになります。

foobarロギングを通じて、ワーカーがタスクを受け取ることはないと判断しました。だから今、私はどの時点でタスクメッセージが失われているのかをデバッグしようとしています.

(AMQP メッセージ ブローカーとして RabbitMQ を使用します。)

セロリ キューの現在の内容を確認するにはどうすればよいですか? RabbitMQ キューの内容を直接調べることはできますか?

4

0 に答える 0