检查芹菜工人的状态

ajo*_*jon 3 celery

我有一个使用 Celery 的项目。我定期遇到这样一种情况,我的请求正在向 Celery 发送,但任务没有交给工作人员,而服务器只是返回 500 错误。

当我重新启动 Celery 时,它又开始工作了。我只是猜测工人正在挂起,这使得它不再有可用的工人。如果我启动另一批工作人员,请求将再次开始工作(这支持我的理论)。

问题:

  1. 我理解芹菜默认记录到标准错误。我没有看到任何错误,所以我希望某处有另一个芹菜日志。那会在哪里?
  2. 有没有办法查询工人的状态?它们可用吗?他们挂了吗?
  3. 还能是别的吗?

jos*_*kal 12

您可以使用花 API 或使用以下方式直接查询 celery 来查看活跃的工作人员:

from celery import Celery
app = Celery('vwadaptor',
             broker='redis://workerdb:6379/0',
             backend='redis://workerdb:6379/0')

app.control.inspect().active()
Run Code Online (Sandbox Code Playgroud)

向您显示活动的工作人员及其当前正在执行的作业。


Eri*_*ken 5

要快速获取工作人员的状态,您可以运行以下命令:

celery -A project inspect stats
Run Code Online (Sandbox Code Playgroud)

它将输出一个 JSON 数组,其中包含有关您的工作人员的大量统计信息。

请参阅文档了解更多详细信息。