2016-11-10 4 views
0

Djangoバージョン1.9.7。SECRET_KEY設定は、Celeryワーカーの実行時に空であってはなりません

私の現在のプロジェクト構造は次のとおりです。

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を試す前にこのエラーが発生していませんでした。

ワーカーを実行するにはどうすればよいですか?あなたはImproperlyConfigured例外などを見るとき

ロケット/ 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)) 

ロケット/ initはの.py

from __future__ import absolute_import, unicode_literals 
from .celery import app as celery_app 

__all__ = ['bku'] 
+0

@KevinChristopherHenryあなたが正しいです、設定へのパスは間違っていました。私は 'rocket.settings.base'を通過し、今セロリは完璧に動作します。ありがとうございました。あなたの答えをポストし、私はそれをupvoteします。 – trex

答えて

3

エラーメッセージが少し誤解を招く、通常、これは、Djangoがあなたの設定ファイルを見つけることができないことを意味します。

DJANGO_SETTINGS_MODULEという環境変数をrocket.settingsに設定していますが、ディレクトリ構造からはrocket.settings.productionのようになります。

関連する問題