Ошибка 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)

и сообщите мне об этом.

Вернуться на верх