【发布时间】:2022-07-02 03:11:37
【问题描述】:
我想要一个 cron 工作,一切都已经设置好了,而且 cron 也在工作,但不幸的是,cron 没有得到我的环境变量。我正在使用 os 获取我的环境变量,它们在整个项目中运行良好,但在我的 cron 中却没有。
settings.py
SECRET_KEY = os.environ.get('SECRET_KEY')
# Cron Jobs
CRONJOBS = [
('* * * * *', 'projects.cron.notifications_cron', '>> /cron/django_cron.log 2<&1')
]
crontab -e
* * * * /usr/local/bin/python /app/manage.py crontab run 744fbefdbf3ad30bec13
error in log file
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
当我在我的settings.py 中设置SECRET_KEY 硬编码时,它工作正常,但我想从我的环境变量中获取它。
【问题讨论】:
-
Cron 不使用你当前的环境。
-
那么如何在 cron 中设置我当前的环境变量?
-
你没有。您可能误解了 cron 的工作原理。您只是在为在其自己的环境中运行的服务器编辑配置文件。您当前的环境对其没有影响。您可以做的是编写一个脚本来设置变量或将它们包含在命令行中。但坦率地说,这更像是一个 Linux 用户,而不是一个编程话题。
-
here 你有办法识别。另一种解决方法是使用配置文件并从那里加载变量,您可以使用 decouple 库。
-
@Augusto 它不工作:(