Django 1.9.7。
我目前的项目结构是:
vehicles/
├── etl
│ ├── etl
│ ├── manage.py
│ ├── pipeline
│ └── bku
└── web
├── db.sqlite3
├── manage.py
├── profiles
├── projects
├── reverse
├── static
├── templates
├── bku
│ ├── admin.py
│ ├── admin.pyc
│ ├── apps.py
│ ├── migrations
│ ├── models.py
│ ├── static
│ ├── templates
│ ├── tests.py
│ ├── urls.py
│ ├── views.py
│ └── views.pyc
└── rocket
├── celery.py
├── __init__.py
├── settings
│ ├── base.py
│ ├── dev.py
│ ├── __init__.py
│ ├── local.py
│ ├── production.py
│ ├── test.py
├── urls.py
├── wsgi.py
现在我想在bku
Django应用中使用Celery。但是当我运行工作人员celery -A rocket worker -l info
时,我收到以下错误django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
。我已经定义了SECRET_KEY
,在尝试使用Celery之前我没有遇到此错误。
如何管理员工?
火箭/ celery.py
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'rocket.settings')
app = Celery('rocket')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
火箭/的初始化的.py
from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ['bku']
答案 0 :(得分:5)
错误消息有点误导 - 通常当您看到ImproperlyConfigured
异常时,这意味着Django无法找到您的设置文件。
在您的情况下,您将DJANGO_SETTINGS_MODULE
环境变量设置为rocket.settings
,但是从您的目录结构看起来应该类似于rocket.settings.production
。