Ошибка celery-container (завершена с кодом 1) после установки и добавления django-crontab в INSTALLED_APPS в settings.py

Я работаю над проектом django, которому нужен celery для запуска некоторых задач в фоновом режиме. Мне также нужно запускать некоторые cron-jobs, поэтому я установил django-crontab в контейнер, добавив его в INSTALLED_APPS в settings.py, «python manage.py crontab show» OUTPUT:

root@865809c7149e:/apps# python manage.py crontab show
Текущие активные задания в кронтабе: ab590d03e928be09c5fc1a0048404548 -> ('*/3 * * * * *', 'AppName.cron.cron.cron_job_method', '>> /apps/crontab.log')

САМОСТОЯТЕЛЬНО не появляется файл crontab.log... Я не понимаю, почему...

И:

Контейнерcelery завершает работу по команде «docker compose up» с:

... celery-1 | ModuleNotFoundError: Нет модуля с именем 'django_crontab' celery-1 завершил работу с кодом 1 web-1 | Наблюдение за изменениями файлов с помощью StatReloader

.

Вот мой docker-compose.yml

services:
db:
    image: postgres:17
    env_file: .env
    volumes:
        - ./local-db:/var/lib/postgresql/data

redis:
    image: redis:7

web:
    build: .
    command: python manage.py runserver 0:8030
    ports:
        - 8030:8030
    volumes:
        - ./projectDIR:/apps
    env_file: .env
    links:
        - db
    depends_on:
        - db
        - redis

celery:
    build: .
    command: celery -A projectDIR worker -l INFO
    env_file: .env
    volumes:
        - ./projectDIR:/apps
    environment:
        redis_url: redis://redis:6379/0
    links:
        - db
        - redis
        - web
    depends_on:
        - web
        - redis

ЛЮБАЯ ПОМОЩЬ БУДЕТ ОЧЕНЬ ПРИЗНАТЕЛЬНА!

После нескольких часов отчаяния я наконец пришел к решению (на случай, если у кого-то есть похожие проблемы...):

  1. Я закомментировал все строки кода, ссылающиеся на crontab (#) в модуле django settings.py, чтобы избежать ошибки...
  2. затем я запустил docker (чтобы иметь возможность запускать bash):

docker compose up 3. чтобы я мог вызвать терминал контейнера celery $ docker compose exec celery bash 4. где я просто выполнил установку pip: $ pip install django-crontab 5. Наконец - после дешевого Ctrl+C - я перезапустил контейнер (шаг.2)

И вуаля, никаких ошибок!

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