Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “开始芹菜工人扔”;无属性';工人(州)db和"x27 ;&引用;_Python_Django_Celery - Fatal编程技术网

Python “开始芹菜工人扔”;无属性';工人(州)db和"x27 ;&引用;

Python “开始芹菜工人扔”;无属性';工人(州)db和"x27 ;&引用;,python,django,celery,Python,Django,Celery,当我尝试在Django应用程序中启动芹菜工人时,如下所示: celery -A myApp worker -l info 我发现以下错误: 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)) Attribu

当我尝试在Django应用程序中启动芹菜工人时,如下所示:

celery -A myApp worker -l info
我发现以下错误:

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'

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

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

SECRET_KEY = os.environ['SECRET_KEY']
要解决此问题,您可以切换回:

SECRET_KEY = "asdfasdfasdf"
或使用:

SECRET_KEY = os.environ.get('SECRET_KEY', '')
如果您在
cellery.py
文件中注释以下行并再次启动worker,您还可以找到导致问题的设置:

app.config_from_object('django.conf:settings', namespace='CELERY')

我想补充两点:

  • 当您从任何配置文件(实际上不是django的)加载设置时,也是如此。这个问题纯粹与芹菜有关

  • 关于这个神秘错误的起源的一些解释:

  • worker\u state\u db
    是一个带有默认值的设置,因此您不必手动设置它。引发异常是因为
    设置
    只是空的,没有任何值,甚至没有默认值。也就是说,我们没有加载默认配置。在芹菜中,解析异常(导致问题的原始异常)在启动工作程序时不会传播到stderr。因此,您会收到一条消息,它不会告诉您任何可能的解决方案

    如何修复它? 例如,如果您将芹菜应用程序模块放置在
    celeryconfig.py
    的位置,并通过以下方式从该位置加载设置:

    app.config_from_object('path.to.your.celery.module.celeryconfig')
    

    检查整个
    celeryconfig.py
    文件中是否存在任何可能导致解析器崩溃或崩溃的内容(设置值不兼容?)

    我在尝试使用停靠的django项目配置芹菜时反复遇到了这个问题。解决方案包括docker-compose.yaml中的
    env_文件

      celery:
        ...
        env_file: .env
    

    当在settings.py中加载的config.json中缺少一个键(基本上是settings.py中缺少一个键)时,我遇到了相同的错误

    错误文本是完全不相关的。
    希望有帮助

    从对象中删除行
    app.config\u…
    无法调试问题,但更改
    SECRET\u KEY=os.environ…
    效果很好。谢谢。奇怪的是,上次我有一些变量是在没有get()的情况下加载的,我在注释那一行后设法找到了它们。无论如何,最好检查所有设置,并检查其中哪些是用os.enviro['xxxxx']加载的,如果我需要将这些变量放入os.enviro中怎么办@它们在操作系统环境中。只是用不同的方法把它们弄出来,效果很好;我假设如果你有不同的服务,那么一定是它们不共享同一个环境?对我来说,配置确实加载了,但我在芹菜4.3.0中仍然遇到了这个问题