我正在使用Celery来管理异步任务。然而,偶尔,celery 进程会停止,这会导致没有任何任务被执行。我希望能够检查 celery 的状态并确保一切正常,如果我检测到任何问题,则会向用户显示错误消息。从 Celery Worker 文档看来,我可以使用ping或inspect来解决这个问题,但是 ping 感觉很笨拙,并且不清楚 inspect 到底是如何使用的(如果 inspect().registered() 为空?)。
对此的任何指导将不胜感激。基本上我正在寻找的是这样的方法:
def celery_is_alive():
from celery.task.control import inspect
return bool(inspect().registered()) # is this right??
编辑:它甚至不像 celery 2.3.3 上可用的 registered() (即使 2.1 文档列出了它)。也许 ping 是正确的答案。
编辑:Ping 似乎也没有像我想象的那样做,所以仍然不确定这里的答案。