Python: Celery inspect



我发现了一些相关的问题,但没有确切描述我的问题。所以我可以用这样的代码检查我的队列:

from celery.task.control import inspect
#inspect(['my_queue']), with a list instead of a str, should work! 
i = inspect(['my_queue'])
print(i.active())  #  get a list of active tasks
print(i.registered()) # get a list of tasks registered
print(i.scheduled()) # get a list of tasks waiting
print(i.reserved()) #tasks that has been received, but waiting to be executed

但不知何故,每执行一秒,该方法就会返回一个空任务列表。有时我也会遇到重置连接错误。有一些想法为什么会这样?是否有类似间隔的东西,工人在其中填写活动任务列表或类似的东西?

我认为你上面写的代码不是实际应用程序的样子(没有Celery对象它就无法工作(。-唯一的解释是你有一些连接问题,否则每次运行都应该正常,除非真的没有任务要报告。换句话说,集群处于空闲状态。

请记住,inspect会向所有员工广播消息,并等待他们的回复。如果它们中的一些由于任何原因而超时,您将不会在输出中看到该工作者。如果碰巧只有那个工人在忙,你可能会得到一个空的任务列表。

试着调用类似celery -A yourproject.celeryapp status的东西,看看你的员工是否有反应,如果一切正常,运行你的脚本。-它应该起作用。

相关内容

  • 没有找到相关文章

最新更新