現在、本番環境で実行されている 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 キューの内容を直接調べることはできますか?