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.

0

There are 0 best solutions below