我用 docker 运行 Celery + redis + flask,我想知道有多少任务等待 Celery 执行。我试图使用命令在 redis 中查找信息
keys *
我得到结果:
127.0.0.1:6379> keys *
1) "unacked_mutex"
2) "_kombu.binding.celeryev"
3) "unacked_index"
4) "_kombu.binding.celery.pidbox"
5) "_kombu.binding.celery"
6) "unacked"
这些项目似乎都不包含芹菜队列信息。如何读取芹菜队列大小?
这是芹菜代码:
from celery import Celery
import time
app = Celery('tasks', broker='redis://redis:6379')
@app.task
def sleeptest():
time.sleep(100)
这就是我提交芹菜作业的方式:
import tasks
import time
tasks.sleeptest.delay()
time.sleep(1)
tasks.sleeptest.delay()
time.sleep(1)
tasks.sleeptest.delay()
time.sleep(1)
tasks.sleeptest.delay()
time.sleep(1)
tasks.sleeptest.delay()
time.sleep(1)
当我发布 100 个任务时,会出现芹菜队列。但是当我只发布 5 个任务时,芹菜队列不会显示,即使我将并发设置为 1 和 4 个任务实际上正在等待。
这些信息深埋在 Celery 文档中 - 监控 redis 队列。如果您什么也没看到,则表示任务已完成、正在运行或已保留(查找有关worker_prefetch_multiplier的详细信息(。