Как запустить Celery через Docker
Пишу сайт на Django, появилась потребность в асинхронных задачах, взялся за Celery. На локальном сервере всё работает корректно, но столкнулся с проблемой при переносе.
При запуске worker'а на боевом сервере через Докер выскакивает ошибка: celery -A crm_transfer wokrer -l info
Usage: celery [OPTIONS] COMMAND [ARGS]...
Error: Invalid value for '-A' / '--app':
Unable to load celery application.
The module crm_transfer was not found.
Вот код:
docker-compose.yml
celery:
build:
context: .
dockerfile: Dockerfile
command: celery -A crm_transfer worker -l info
depends_on:
- redis
celery.py
import os
from celery import Celery
from celery.schedules import crontab
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'crm_transfer.settings')
app = Celery('crm_transfer')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
init.py
from .celery import app as celery_app
__all__ = ('celery_app', )
settings.py
REDIS_HOST = '0.0.0.0'
REDIS_PORT = '6379'
CELERY_BROKER_URL = 'redis://' + REDIS_HOST + ':' + REDIS_PORT + '/0'
CELERY_RESULT_BACKEND = 'redis://' + REDIS_HOST + ':' + REDIS_PORT + '/0'
Структура:
crm_transfer:
-crm_transfer:
-init.py
-setting.py
-celery.py
-api:
-tasks.py
Не понимаю, почему не находит воркер, ведь и в нужной директории нахожусь, и код, вроде, правильный... За сегодня уже весь гугл перелазил - ничего( Буду очень благодарен за помощь)
celery==5.1.0