Пример из django-сельдерея, не работающего в приложении Django - PullRequest
1 голос
/ 11 июля 2011

Я следую этому уроку

http://celeryq.org/docs/django-celery/getting-started/first-steps-with-django.html

Я начал сельдерей с

python manage.py celeryd

Затем я сделал tasks.py в папке myapp с

from celery.decorators import task

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

Затем я положил их в settings.py

import djcelery
djcelery.setup_loader()

    CELERY_RESULT_BACKEND = "database"
    CELERY_RESULT_DBURI = "mysql://user1:password@localhost/ajfdfa_rabbitmq"

    BROKER_HOST = "localhost"
    BROKER_PORT = 5672
    BROKER_USER = "guest"
    BROKER_PASSWORD = "guest"
    BROKER_VHOST = "/"

Затем я запустил оболочку Python с

python manage.py shell

Тогда я наберу

из задач импорта myapp

Все прошло нормально

Но когда я набираю имя функции, я получаю ошибку

add.delay(4, 4)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
NameError: name 'add' is not defined

Чего мне не хватает

1 Ответ

3 голосов
/ 11 июля 2011

Внутри оболочки ты это сделал?

from myapp import tasks

Если это так, вам нужно назвать это так:

tasks.add(4,4)

Или вам нужно изменить импорт следующим образом:

from myapp.tasks import add
add(4,4)
...