运行status命令时出现以下错误: -
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
编辑: -
检查芹菜拍的日志后,我发现了以下错误
celerybeat raised exception <class 'gdbm.error'>: error(13, 'Permission denied')
答案 0 :(得分:2)
这可能是因为芹菜没有celerybeat-schedule
文件的写权限。您链接到的文档显示芹菜配置为使用/var/run/celerybeat-schedule
作为芹菜节拍计划文件。
您的进程是否具有该文件的写权限?如果该目录由root
拥有(应该是),并且您的进程正在以root
用户以外的任何其他方式运行,则可能导致权限被拒绝错误。
检查您的权限是否正确,然后尝试删除该文件,然后重新启动所有内容。
答案 1 :(得分:1)
使用以下命令查找问题:
C_FAKEFORK=1 sh -x /etc/init.d/celeryd start
这通常是因为源项目中存在问题(权限问题,语法错误等)
如芹菜文档中所述: -
如果工人以“OK”开始,但几乎立即退出 并且日志文件中没有任何内容,则可能存在错误 但由于守护进程标准输出已经关闭,你不会 能够在任何地方看到它们。对于这种情况,你可以使用 C_FAKEFORK环境变量跳过守护步骤
祝你好运
来源:Celery Docs
答案 2 :(得分:0)
我遇到了同样的问题。 重启rabbitmq修复了它:
sudo systemctl restart rabbitmq-server
奇怪的是我需要等待至少100秒。 对我来说,我认为存在磁盘问题。