Celeryd时间限制错误
Posted
技术标签:
【中文标题】Celeryd时间限制错误【英文标题】:Celeryd time constraint error 【发布时间】:2012-12-11 02:35:31 【问题描述】:运行状态命令时出现以下错误:-
Am using rabbitmq as the messaging broker
我正在关注这个blog
sudo /etc/init.d/celeryd status
Error: No nodes replied within time constraint
如何调试此错误?
我也检查了这个问题。那里的答案没有帮助。
django/celery - celery status: Error: No nodes replied within time constraint
编辑:-
查看celery beat的日志后发现如下错误
celerybeat raised exception <class 'gdbm.error'>: error(13, 'Permission denied')
【问题讨论】:
你用的是什么后端? @bradley.ayers rabbitmq 作为消息传递代理 ... 可能是你没有足够的可用磁盘空间,RabbitMQ正在阻塞消息,导致超时? 不,我检查了磁盘空间,“df - h”有足够的可用空间。 增加日志记录以查看实际发生的情况。 【参考方案1】:这可能是由于 celery 没有celerybeat-schedule
文件的写入权限造成的。您链接到的文档显示 celery 配置为使用 /var/run/celerybeat-schedule
作为 celery 节拍时间表文件。
您的进程是否对该文件具有写入权限?如果该目录归 root
所有(应该如此),并且您的进程以 root
用户以外的任何用户身份运行,则可能导致权限被拒绝错误。
检查您的权限是否正确,然后尝试删除该文件,然后重新启动一切。
【讨论】:
所以最后的问题是所有的日志、运行和计划文件都正确分配了写权限。【参考方案2】:使用以下命令查找问题:
C_FAKEFORK=1 sh -x /etc/init.d/celeryd start
这通常是因为您的源项目中存在问题(权限问题、语法错误等)
如 celery 文档中所述:-
如果工作人员以“OK”开始但之后几乎立即退出 并且日志文件中没有任何内容,那么可能有错误 但由于守护进程的标准输出已经关闭,你不会 能够在任何地方看到它们。对于这种情况,您可以使用 C_FAKEFORK 环境变量跳过守护进程
祝你好运
来源:Celery Docs
【讨论】:
【参考方案3】:我也有同样的问题。 重启rabbitmq修复它:
sudo systemctl restart rabbitmq-server
奇怪的是我需要等待至少 100 秒。 对我来说,我认为是磁盘问题。
【讨论】:
以上是关于Celeryd时间限制错误的主要内容,如果未能解决你的问题,请参考以下文章