我有一个使用Celery的项目。我定期遇到我的请求转到Celery的情况,但是任务没有传递给工作人员,而是服务器只返回500错误。
当我重新启动Celery时,它再次开始工作。我只是猜测工人是悬挂的,因此没有工人可用。如果我启动另一批工作人员请求再次开始工作(这支持我的理论)。
问题:
答案 0 :(得分:3)
您可以使用花卉API或使用以下方式直接查询芹菜来查看活跃的工作人员:
from celery import Celery
celery = Celery('vwadaptor',
broker='redis://workerdb:6379/0',backend='redis://workerdb:6379/0')
celery.control.inspect().active()
显示活动工作人员及其当前正在执行的工作。
答案 1 :(得分:0)
答案 2 :(得分:0)
要快速了解工作人员的身份,可以运行以下命令:
celery -A project inspect stats
它将输出一个JSON数组,其中包含有关您的工作人员的大量统计信息。
有关更多详细信息,请参见docs。
答案 3 :(得分:0)
我了解芹菜默认情况下会记录到stderr。我没有看到任何错误,所以我希望某个地方还有另一个芹菜日志。那会在哪里?
Celery记录器将写入用--logfile=/path/to/file.log
指定的文件。如果您未指定,它将按照您所说的进入stderr。
有什么方法可以查询工人的身份吗?有空吗?他们挂了吗?
是的,Celery文档的Monitoring and Management Guide涵盖了所有内容。
celery -A yourproject.app inspect status
将提供您的工作人员身份。 celery -A yourproject.app inspect active
将为您提供当前正在运行的任务列表,等等。
还有其他吗?
Celery不返回任何500错误。你指的是什么?芹菜花? -Celery不是Web服务器...因此,您的Celery群集很可能正常运行,但是您对Celery Flower或其他Web服务器崩溃感到困惑。