Использование Celery в проекте с одним приложением Django - PullRequest
0 голосов
/ 12 февраля 2020

Я структурировал свой Django проект в соответствии с шаблоном Single-App Django Project Anatomy для простоты. Это дает мне структуру проекта следующим образом:

myproject
├── manage.py
├── settings.py
├── celery.py
├── myapp
│   ├── models.py
│   ├── tasks.py
│   ├── ...
│   └── views.py
├── urls.py
└── wsgi.py

Далее, я создал celery.py, содержащий инициализацию экземпляра приложения:

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')
app = Celery('myproject')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

Я понимаю, что Celery, вероятно, ожидает «традиционная» структура проекта для его интеграции. Какова будет правильная настройка celery.py в этом случае, и как должен работать рабочий?

1 Ответ

0 голосов
/ 13 февраля 2020

Я думаю, вам нужно изменить файл init .py, чтобы загрузить приложение при запуске Django. Добавьте фрагмент кода для изменения модуля ' init .py'

from __future__ import absolute_import, unicode_literals
# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from .celery import app as celery_app
__all__ = ('celery_app',)

Источник: https://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...