Ошибка Celery получена незарегистрированная задача типа
Я пытаюсь добавить сельдерей в среду проекта Django-Docker.
У меня ошибка:
received unregistered task of type 'create_task'.
Я пробовал идеи из Celery Received unregistered task of type (run example)
но не получилось (пытался указать имя задачи, например, @app.task(name= )
Как я могу исправить эту ошибку?
Моя структура проекта
.
├── docker-compose.yml
├── project
│ ├── core_app
└── celery.py
...
│ ├── nginx-conf.d
│ │ └── nginx-conf.conf
│ ├── parser_app
...
celery.py
from __future__ import absolute_import
import os
from celery import Celery
from core_app.settings import INSTALLED_APPS
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core_app.settings')
app = Celery("core_app")
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks(lambda: INSTALLED_APPS)
#@app.task(name='core_app.celery.create_task') # doesn't help
@app.task(name='create_task')
def create_task(task_type):
period = int(task_type) * 10
print("SLEEP ", period)
time.sleep(period)
return True
docker-compose.yml
services:
django:
build: ./project # path to Dockerfile
command: sh -c "
python manage.py makemigrations
&& python manage.py migrate
&& gunicorn --bind 0.0.0.0:8000 core_app.wsgi"
volumes:
- ./project:/project
- ./project/static:/project/static
expose:
- 8000
environment:
- DATABASE_URL=postgres://postgres:post222@db:5432/lk_potok_4"
- DEBUG=1
db:
...
nginx:
...
celery:
build: ./project
command: celery -A core_app worker --loglevel=info
volumes:
- ./project:/usr/src/app
environment:
- DEBUG=1
- DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 [::1]
- CELERY_BROKER=redis://redis:6379/0
- CELERY_BACKEND=redis://redis:6379/0
depends_on:
- django
- redis
redis:
image: redis:5-alpine
Попробовать
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
вместо
app.autodiscover_tasks(lambda: INSTALLED_APPS)
и сообщите мне об этом.