Django Celery获取任务计数

我目前正在将celery与django结合使用,并且一切正常。

但是,如果服务器超载,我希望能够通过检查当前计划了多少个任务,使用户有机会取消任务。

我怎样才能做到这一点?

我正在使用Redis作为代理。

这在某种程度上与我的问题有关,但是我不需要列出任务,只需数一下它们即可:)

回答:

如果您的代理配置为redis://localhost:6379/1,并且您的任务已提交到常规celery队列,则可以通过以下方式获得长度:

import redis

queue_name = "celery"

client = redis.Redis(host="localhost", port=6379, db=1)

length = client.llen(queue_name)

或者,从shell脚本(适用于监视器等):

$ redis-cli -n 1 -h localhost -p 6379 llen celery

以上是 Django Celery获取任务计数 的全部内容, 来源链接: utcz.com/qa/421034.html

回到顶部