Пока я понимал, как использовать сельдерей, я обнаружил следующее
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')
В приведенном выше коде мы устанавливаем переменную env DJANGO_SETTINGS_MODULE
Это то же самое, что мы делаем в управлении.py
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projectname.settings')
Поскольку DJANGO_SETTINGS_MODULE
устанавливается в файле manage.py, зачем устанавливать его снова в сельдерее
Я проверил, что 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
output:
DJANGO_SETTINGS_MODULE [celery.py] : projectname.settings
Так что я чувствую, что это не нужно.