gpt4 book ai didi

django - 为什么在启动 celery 时没有检测到我的环境变量?

转载 作者:行者123 更新时间:2023-12-04 10:07:29 27 4
gpt4 key购买 nike

我在 apache 和 mod_wsgi 服务的 centos 上运行 django。我按照说明将 celery 设置为作为守护进程运行。

我把这个初始化脚本https://github.com/celery/celery/blob/3.1/extra/generic-init.d/celeryd/etc/init.d/celeryd
并在

/etc/default/celeryd 

我在我的 django settings.py 文件中使用环境变量,所以我可以在我的开发和生产环境中使用不同的配置。我知道这些环境变量设置正确,因为该应用程序一直在运行。我认为 celery 只是没有将变量传递给它或其他什么。

我通过输入 env 来检查命令。变量显示正常。

要开始,我只做:
service celeryd start

它尝试启动但抛出一个错误,说我没有设置环境变量。

我写了一个函数来获取环境变量。这就是引发错误的原因。
def get_env_variable(var_name):
try:
return os.environ[var_name]
except KeyError:
error_msg = "Set the %s environment variable" % var_name
raise ImproperlyConfigured(error_msg)

抛出错误的唯一方法是环境变量设置不正确。

有谁知道为什么 celery 没有检测到我设置的环境变量?

最佳答案

我刚刚发现我不仅必须在系统中设置环境变量,而且还必须将这些变量传递给/etc/default/celleryd 脚本。

我只是将我的变量放在/etc/default/celleryd 的底部:

export MY_SPECIAL_VARIABLE = "my production variable"
export MY_OTHERSPECIAL_VARIABLE = "my other production variable"

关于django - 为什么在启动 celery 时没有检测到我的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22759798/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com