2013-08-28 54 views
0

我想在在我的开发环境中使用芹菜芹菜击败)定期运行任务的Django芹菜拍报告ImproperlyConfigured为settings.DATABASES但数据库工作正常

应用/核心/ tasks.py

from celery import task 

@task() 
def add(x, y): 
    return x + y 

settings.py(仅适用于相关的部分)

import djcelery 
from celery.schedules import crontab 
from apps.startups.tasks import add 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': 'development.db', 
    } 
} 

djcelery.setup_loader() 
CELERY_IMPORTS = ("apps.core.tasks",) 
BROKER_URL = 'amqp://guest:[email protected]:5672/' 
CELERYBEAT_SCHEDULE = { 
    'add-every-day': { 
     'task': 'apps.core.tasks.add', 
     'schedule': crontab(hour=11, minute=43), 
     'args': (16, 16), 
    }, 
} 

我然后通过运行python manage.py celery worker --beat启动芹菜节拍工人。

然后在11:43芹菜过程报告以下对我说:

[2013-08-27 11:43:00,216: WARNING/PoolWorker-5] 
/home/username/.virtualenvs/myproject/local/lib/python2.7/site-packages/celery/task/trace.py:341: RuntimeWarning: 
Exception raised outside body: ImproperlyConfigured( 
'settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.',) 

,因为我已经在DATABASES设置提供我'ENGINE'价值,我从来没有任何问题,我的数据库真奇怪我的项目。任何线索为什么发生这种情况?

回答

0

错误是由以下行引起的:from apps.core.tasks import add。去掉它后,芹菜按照记录工作。

该行CELERY_IMPORTS = ("apps.core.tasks",)是没有必要的。至少我没有注意到它的差别。