启动芹菜工人抛出"无属性'worker_state_db'"

Ale*_*kov 15 python django celery

当我试图在Django app中启动芹菜工作时:

celery -A myApp worker -l info
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

File "/home/alexander/.pyenv/versions/3.5.1/envs/myApp/lib/python3.5/site-packages/celery/utils/collections.py", line 134, in __getattr__
    type(self).__name__, k))

    AttributeError: 'Settings' object has no attribute 'worker_state_db'
Run Code Online (Sandbox Code Playgroud)

如果你知道如何解决它,请写下你的想法!

Ale*_*kov 24

如果在解析设置时引发异常,则会出现该错误.例如当我们SECRET_KEY通过环境变量设置Django (或任何其他设置)时:

SECRET_KEY = os.environ['SECRET_KEY']
Run Code Online (Sandbox Code Playgroud)

要解决此问题,您可以切换回:

SECRET_KEY = "asdfasdfasdf"
Run Code Online (Sandbox Code Playgroud)

或使用:

SECRET_KEY = os.environ.get('SECRET_KEY', '')
Run Code Online (Sandbox Code Playgroud)

如果您在celery.py文件中注释以下行并再次启动工作程序,您还可以找到导致问题的设置:

app.config_from_object('django.conf:settings', namespace='CELERY')
Run Code Online (Sandbox Code Playgroud)

  • 删除行 `app.config_from_object...` 无法调试问题,但更改 `SECRET_KEY = os.environ...` 效果很好。谢谢。 (2认同)