Результаты Celery не обновляются после докеризации
В настоящее время я размещаю свое приложение Django на Docker. Я успешно докеризировал Django, gunicorn, nginx и Celery, однако когда я запускаю задачу Celery, хотя она выполняется (отображается в логах), результаты не сохраняются в моей базе данных.
Это работало до докеризации всего, так что это, вероятно, происходит из-за моих конфигураций docker, но мне не удалось найти, какая часть была неправильной/неполной.
Кроме того, я использую стандартную базу данных sqlite3 Django, поскольку мне не нужно хранить огромное количество данных.
Вот мой docker-compose.yml:
version: '3.8'
services:
django_gunicorn:
volumes:
- db:/db.sqlite3
- static:/static
- media:/media
env_file:
- env
build:
context: .
ports:
- "8000:8000"
command: sh -c "python manage.py migrate && python manage.py collectstatic --no-input && gunicorn main.wsgi:application --bind 0.0.0.0:8000"
nginx:
build: ./nginx
volumes:
- static:/static
- media:/media
ports:
- "80:80"
depends_on:
- django_gunicorn
rabbitmq3:
image: rabbitmq:3-alpine
ports:
- 5672:5672
celery:
restart: always
build:
context: .
command: celery -A main worker -P eventlet -c 100 -l INFO
env_file:
- env
depends_on:
- rabbitmq3
- django_gunicorn
volumes:
- db:/db.sqlite3
volumes:
db:
static:
media:
Dockerfile
FROM python:3.10.5-alpine
ENV PYTHONUNBEFFERED = 1
RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt
COPY ./src /app
WORKDIR /app
celery.py
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'main.settings')
app = Celery('main')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
Может быть, это потому, что я использую sqlite3? Во время поиска решения я видел, что все используют PostgreSQL. Должен ли я перейти на PostgreSQL? Или что мне нужно изменить, чтобы получить результаты моих задач в моей базе данных ?