【发布时间】:2014-12-04 02:07:16
【问题描述】:
根据 Greenfeld-Roy 的书“Two scoops of Django”,将密钥放入环境变量而不是设置文件中是一种很好的做法。所以我遵循了这个建议,但是当试图在 cronjob 中执行一个自写的管理命令时会导致问题。
过了一会儿,我发现我必须将密钥环境变量包含到 crontab 文件本身中,否则 manage.py 无法加载外部模块(这是因为 cron 不知道任何事情但环境变量的一小部分)。所以修复后,我的 crontab 文件如下所示:
DJANGO_SETTINGS_MODULE=myproject.settings
DJANGO_SECRET_KEY=my-project-secret-key
0 0 * * * path/to/python path/to/manage.py management_command
我想知道这是否是一个好的解决方案,或者是否有任何其他(可能更 Python 的?)方法来解决这个问题。
【问题讨论】:
-
使用 celery/celerybeat 调度任务是另一种选择
-
是的,我知道 celery,但是任务真的很轻,在我看来使用分布式任务队列有点过劳了。
标签: python django crontab django-settings