【发布时间】:2019-09-19 10:46:48
【问题描述】:
当我了解如何使用芹菜时,我发现了以下内容
import os
from celery import Celery
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projectname.settings')
app = Celery('projectname')
在上面的代码中,我们设置了环境变量 DJANGO_SETTINGS_MODULE
这和我们在 manage.py 中做的事情是一样的
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projectname.settings')
既然DJANGO_SETTINGS_MODULE 是在manage.py 中设置的,为什么还要在celery 中设置它
我检查了 DJANGO_SETTINGS_MODULE 是否已设置。我注释掉并打印了 env 变量:
import os
from celery import Celery
# set the default Django settings module for the 'celery' program.
#os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projectname.settings')
print("DJANGO_SETTINGS_MODULE [celery.py] : ",os.environ.get("DJANGO_SETTINGS_MODULE"))
app = Celery('projectname')
然后
$ python manage.py runserver
输出:
DJANGO_SETTINGS_MODULE [celery.py] : projectname.settings
所以我觉得不需要。
【问题讨论】:
标签: django celery django-celery