芹菜击败报告设置不正确配置.DATABASES但数据库工作正常

时间:2013-08-28 08:40:49

标签: django celery django-celery

我想在我的开发环境中使用 Celery 芹菜击败)在 Django 中定期运行任务。

apps / core / 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:guest@localhost: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.',)

这很奇怪,因为我在'ENGINE'设置中提供了DATABASES值,而且我的项目中的数据库从未出现任何问题。任何线索为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

错误是由此行引起的:from apps.core.tasks import add。移除后,芹菜按照记录的方式工作。

CELERY_IMPORTS = ("apps.core.tasks",)不是必需的。至少我没有注意到它没有任何区别。