Python: 芹菜检查
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
但不知何故,每执行一次方法 returns 一个空任务列表。有时我还会收到重置连接错误。一些想法为什么会这样?是否有类似间隔的东西,工作人员在那里填写活动任务列表或类似的东西?
我假设你上面写的代码不是实际应用程序的样子(没有 Celery 对象它就不能工作)。 - 唯一的解释是你有一些连接问题,否则它应该在你每次 运行 时都能正常工作,除非真的没有任务要报告。换句话说 - 集群处于空闲状态。
请记住,inspect 会向所有 worker 广播消息并等待他们的回复。如果其中一些由于某种原因超时,您将不会在输出中看到该工作人员。如果碰巧只有那个工人在忙,你可能会得到一个空的任务列表。
尝试调用 celery -A yourproject.celeryapp status
之类的东西来查看您的工作人员是否有响应,以及是否一切正常 运行 您的脚本。 - 它应该可以工作。
我发现了一些相关的问题,但没有一个能准确描述我的问题。所以我可以用这样的代码检查我的队列:
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
但不知何故,每执行一次方法 returns 一个空任务列表。有时我还会收到重置连接错误。一些想法为什么会这样?是否有类似间隔的东西,工作人员在那里填写活动任务列表或类似的东西?
我假设你上面写的代码不是实际应用程序的样子(没有 Celery 对象它就不能工作)。 - 唯一的解释是你有一些连接问题,否则它应该在你每次 运行 时都能正常工作,除非真的没有任务要报告。换句话说 - 集群处于空闲状态。
请记住,inspect 会向所有 worker 广播消息并等待他们的回复。如果其中一些由于某种原因超时,您将不会在输出中看到该工作人员。如果碰巧只有那个工人在忙,你可能会得到一个空的任务列表。
尝试调用 celery -A yourproject.celeryapp status
之类的东西来查看您的工作人员是否有响应,以及是否一切正常 运行 您的脚本。 - 它应该可以工作。