gpt4 book ai didi

django - Celery 作为 os.environ 上的守护进程任务 KeyError

转载 作者:行者123 更新时间:2023-12-02 11:09:34 25 4
gpt4 key购买 nike

我使用 celery 作为守护进程,与 Celeryd 和 Django 一起通过 Apache 并在 Google Compute Engine 计算机上运行。

我的 Celeryd 默认配置为:

CELERYD_USER="myuser-notroot"
CELERYD_GROUP="developers"

而且我认为所有权限都设置得很好(我想)。当我启动系统时,所有连接都很好,但是当我启动一个任务时:

import os
homedir = os.environ['HOME']

我登录日志:

    homedir = os.environ['HOME']
File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
KeyError: 'HOME'

但是如果我执行 sudo/etc/init.d/celeryd restart ,问题就解决了。任何想法?也许服务启动出现问题?

最佳答案

通常不会为所有用户定义 HOME 环境变量。因此,当 Celery 在引导时启动时,该变量不可用。

当您使用 sudo 重新启动它时,Celery 进程会继承用户环境中的环境变量,这解释了它现在工作的原因(尽管 HOME 将被设置)到您的主目录)。

您应该以不同的方式获取homedir。请参阅How to get the home directory in Python?了解检索主目录的替代方法。

关于django - Celery 作为 os.environ 上的守护进程任务 KeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16166286/

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