- beat循环任务,
- flow监控可视化页面
- work消费者
docker-compose.yml
version: '3'
volumes:
backend_local_postgres_data: {}
backend_local_postgres_data_backups: {}
services:
django: &django
build:
context: ./backend
dockerfile: ./compose/local/django/Dockerfile
image: backend_local_django
# container_name: backend_local_django
depends_on:
- postgres
- redis
volumes:
- ./backend:/app:z
env_file:
- ./backend/.envs/.local/.django
- ./backend/.envs/.local/.postgres
- ./backend/.envs/.local/.mongo
ports:
- "8000:8000"
command: /start
container_name: backend_local_docs
celeryworker:
<<: *django
image: backend_local_celeryworker
depends_on:
- redis
- postgres
ports: []
command: /start-celeryworker
celerybeat:
<<: *django
image: backend_local_celerybeat
depends_on:
- redis
- postgres
ports: []
command: /start-celerybeat
flower:
<<: *django
image: backend_local_flower
ports:
- "5555:5555"
command: /start-flower
start-celerybeat
#!/bin/bash
set -o errexit
set -o pipefail
set -o nounset
exec celery -A config.celery_app beat -l INFO
start-celeryworker
#!/bin/bash
set -o errexit
set -o pipefail
set -o nounset
exec celery -A config.celery_app worker -l INFO
backend_local_flower
#!/bin/bash
set -o errexit
set -o nounset
# env文件里的环境变量
CELERY_FLOWER_USER=debug
CELERY_FLOWER_PASSWORD=debug
CELERY_BROKER_URL="${REDIS_URL}"
exec celery \
-A config.celery_app \
-b "${CELERY_BROKER_URL}" \
flower \
--basic_auth="${CELERY_FLOWER_USER}:${CELERY_FLOWER_PASSWORD}"