Skip to content

Printqueues

snoop.data.management.commands.printqueues #

Print table with rabbitMQ queue depth.

Classes#

Command #

Print queue depth for all queues.

Methods#
handle(self, **options) #

Runs snoop.data.admin.get_stats and prints result.

Source code in snoop/data/management/commands/printqueues.py
def handle(self, **options):
    """Runs [snoop.data.admin.get_stats][] and prints result.
    """

    logging_for_management_command(options['verbosity'])

    tasks.import_snoop_tasks()

    collection_list = sorted(collections.ALL.values(), key=lambda x: x.name)
    queue_list = list(set(f.queue for f in tasks.task_map.values() if f.queue))
    random.shuffle(collection_list)
    random.shuffle(queue_list)
    for collection in collection_list:
        log.info(f'{"=" * 10} collection "{collection.name}" {"=" * 10}')
        for q in queue_list:
            if q:
                q = collection.queue_name + '.' + q
                log.info('queue "%s": depth = %s', q, tasks.get_rabbitmq_queue_length(q))