rabbitmqctl
correctly reports thousands of queued tasks:
$ sudo rabbitmqctl -q list_queues name messages messages_ready messages_unacknowledged
default 13142 13126 16
Yet celery reports:
>>> len(app.control.inspect().active()['celery@default'])
4
>>> len(app.control.inspect().scheduled()['celery@default'])
1
>>> len(app.control.inspect().reserved()['celery@default'])
16
>>> len(app.control.inspect().revoked()['celery@default'])
0
The correct number (thousands) of tasks seem to show up in app.control.inspect().stats()['celery@default']['total']
, but I really want to know the correct number of outstanding queued tasks from within python, and active()
et al seem to only ever report up to 16 or so -- perhaps there is a limit?
Short of using privileged subprocess calls to rabbitmqctl
, how can I get the full queued task count from within python, preferably via celery
(btw this server is using Celery 3.1.8 currently)
pika
etc, or just the total number of messages in the queue? – Candlestand