Im currently trying to deploy a server consisting of django, rabbitMQ, celery worker, and beat. While celery beat executes the created periodic task well, the celery worker that executes the SMS sending task generates the above error message and does not work.
version: "3.9"
services:
was_container:
build:
context: ./was
dockerfile: Dockerfile.was
container_name: was_container
ports:
- "8000:8000"
env_file:
- ./was/.env
restart: always
entrypoint: /entrypoint.sh
networks:
- miti_network
rabbitmq:
image: rabbitmq:3-management
container_name: rabbitmq
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=admin
- RABBITMQ_DEFAULT_VHOST=/
ports:
- "5672:5672"
- "15672:15672"
expose:
- "15672"
networks:
- miti_network
celery_worker:
container_name: celery_worker
build:
context: ./was
dockerfile: Dockerfile.celery-worker
environment:
- CELERY_BROKER_URL=amqp://admin:admin@rabbitmq:5672//
depends_on:
- was_container
- rabbitmq
networks:
- miti_network
command: celery -A config worker --loglevel=info --concurrency=1
celery_beat:
container_name: celery_beat
build:
context: ./was
dockerfile: Dockerfile.celery-worker
environment:
- CELERY_BROKER_URL=amqp://admin:admin@rabbitmq:5672//
depends_on:
- was_container
- rabbitmq
- celery_worker
networks:
- miti_network
command: celery -A config beat --loglevel=info
networks:
miti_network:
driver: bridge
import os
import dotenv
from datetime import timedelta
from celery import Celery
dotenv.load_dotenv()
os.environ.setdefault('DJANGO_SETTINGS_MODULE',
f'config.settings.{os.getenv("ENVIRONMENT")}')
app = Celery('MITI')
app.config_from_object('django.conf:settings', namespace='CELERY')
CELERYBEAT_SCHEDULE = {
'game_status_auto_update': {
'task': 'config.tasks.update_game_status',
'schedule': timedelta(minutes=1),
},
}
app.conf.update(
CELERYBEAT_SCHEDULE = CELERYBEAT_SCHEDULE
)
app.autodiscover_tasks()
from .celery import app as celery_app
__all__ = ['celery_app']
Please tell me the cause and how can i fix it.