Модуль 'project_name' не имеет атрибута 'celery'
Я пытаюсь установить фоновую задачу, используя celery и rabbitmq на django, но получаю ошибку, говорящую, что в моем проекте нет атрибута celery. Я использую PyCharm и установил celery через него.
Я новичок в celery, но я прочитал много статей, похожих на эту проблему (AttributeError: module 'module' has no attribute 'celery' эта кажется наиболее близкой, но не уверен, что это совсем то же самое)
Структура проекта:
project_name
├──project_name
| ├── settings.py
├──app_name1
| └──celery.py
├──app_name2
| └──tasks.py
Я выполняю следующую команду:
celery -A project_name worker -l info --pool=solo
Но я получаю следующую ошибку:
Error: Invalid value for "-A" / "--app":
Unable to load celery application.
Module 'project_name' has no attribute 'celery'
файлcelery.py:
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')
app = Celery('project_name')
app.config_from_object('django.config:settings', namespace='CELERY')
app.autodiscover_tasks()
файл tasks.py:
from __future__ import absolute_import, unicode_literals
from celery import shared_task
@shared_task
def add(x, y):
return x + y
Просто для записи: Поместите celery.py
файл в основной файл проекта, а не внутрь приложения.