Backend/Django
[Django] Celery+Redis+Rabbitmq docker setting
lim.dev
2022. 8. 3. 14:43
# settings.py
CELERY_BROKER_URL = 'amqp://rabbitmq:5672'
CELERY_ACCEPT_CONTENT = ['pickle','json']
CELERY_RESULT_BACKEND = 'redis://redis:6379'
CELERY_TASK_SERIALIZER = 'pickle'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'Asia/Seoul'
DATA_UPLOAD_MAX_MEMORY_SIZE = int(1e10)
# redis cache
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.redis.RedisCache',
'LOCATION': 'redis://redis:6379',
}
}
+ docker setting
redis:
container_name: redis
image: redis:latest
hostname: redis
ports:
- "6379:6379"
rabbitmq:
container_name: rabbitmq
image: rabbitmq:3-management-alpine
environment:
- RABBITMQ_USER=guest
- RABBITMQ_PASSWORD=guest
ports:
- "5672:5672" # Default Port
- "15672:15672" # For UI
expose:
- "15672"
celery_worker:
container_name: celery_worker
build:
context: ./backend
dockerfile: dockerfile
volumes:
- ./backend:/backend
ports: []
depends_on:
- rabbitmq
- backend
environment:
- C_FORCE_ROOT=true # pickle 사용 시 추가
command: sh -c "celery -A backend worker --loglevel=info"