rabbitmqctl
が正しくキューに入れられたタスクの数千人を報告します。celery.control.inspectは、待ち行列に入れられたタスクがrabbitmqctlより少ないと報告するのはなぜですか?
$ sudo rabbitmqctl -q list_queues name messages messages_ready messages_unacknowledged
default 13142 13126 16
しかし、セロリレポート:
>>> len(app.control.inspect().active()['[email protected]'])
4
>>> len(app.control.inspect().scheduled()['[email protected]'])
1
>>> len(app.control.inspect().reserved()['[email protected]'])
16
>>> len(app.control.inspect().revoked()['[email protected]'])
0
タスクの正しい数(数千)app.control.inspect().stats()['[email protected]']['total']
に表示するように見えるが、私は本当に知りたいです未処理ののタスクがPython内からキューに入れられ、active()
などは16までしか報告されていないようです - おそらく制限がありますか?私は(ところで、このサーバーが現在セロリ3.1.8を使用している)celery
経由好ましくは、Pythonの内からフルキューイングされたタスクの数を取得する方法、rabbitmqctl
に特権サブプロセスの呼び出しを使用しての
ショート
ありがとうございました!キューの各メッセージが 'pika'などを使っているか、またはキュー内のメッセージの総数だけを知ることができますか?ありがとう@ChillarAnand; – DrMeers
; 'pika'を介してメッセージを「消費する」ことは、セロリが処理するためにキューに安全に置かれますか?もしそうなら、これは良い解決策です。 – DrMeers
@DrMeers私はそこに道があるとは思わない。しかし、あなたはメッセージを消費して再クエリーすることができますhttp://rabbitmq.1065348.n5.nabble.com/How-to-get-the-list-of-messages-from-Queue-without-consuming-the-messages-td28135.html – ChillarAnand