How to list the queued items in celery?

后端 未结 2 1363
南笙
南笙 2020-12-17 22:41

I have a Django project on an Ubuntu EC2 node, which I have been using to set up an asynchronous using Celery.

I am following http://michal.karzynski.p

2条回答
  •  萌比男神i
    2020-12-17 23:20

    Here is a copy-paste solution for Redis:

    def get_celery_queue_len(queue_name):
        from yourproject.celery import app as celery_app
        with celery_app.pool.acquire(block=True) as conn:
            return conn.default_channel.client.llen(queue_name)
    
    
    def get_celery_queue_items(queue_name):
        import base64
        import json
        from yourproject.celery import app as celery_app
    
        with celery_app.pool.acquire(block=True) as conn:
            tasks = conn.default_channel.client.lrange(queue_name, 0, -1)
    
        decoded_tasks = []
    
        for task in tasks:
            j = json.loads(task)
            body = json.loads(base64.b64decode(j['body']))
            decoded_tasks.append(body)
    
        return decoded_tasks
    

    It works with Django. Just don't forget to change yourproject.celery.

提交回复
热议问题