django celery 锉

olmpazwi  于 2023-05-01  发布在  Go
关注(0)|答案(1)|浏览(128)

我在一个应用程序(或容器)中同时使用Django和celery,但我想在另一个应用程序(或容器)中单独使用celery。我不知道该怎么做,因为我的任务在Django应用程序中。那么,我应该如何设置celery 参数,以便访问任务?

zfciruhq

zfciruhq1#

你应该在docker-compose中创建不同的容器。yml像这样:

version: '3.8'
services:
  proj_container:
      build: .
      image: backend
      container_name: proj_container
      command: sh -c "python3 manage.py makemigrations --no-input app && python3 manage.py migrate && python3 manage.py runserver 0.0.0.0:8000"
      restart: always
      ports:
        - 8000:8000
      volumes:
        - .:/your_proj
      depends_on:
        - rabbitmq
rabbitmq:
      image: rabbitmq:3.11-alpine
      container_name: rabbitmq
      ports:
        - "5672:5672"
      restart: on-failure

  celery:
      build: .
      container_name: celery
      command: celery -A your_proj_name worker -l info
      volumes:
        - .:/your_proj
      env_file:
        - ./.env
      depends_on:
        - proj_container
        - rabbitmq

  celery-beat:
      build: .
      container_name: celery_beat
      command: celery -A your_proj_name beat -l info
      volumes:
        - .:/your_proj
      depends_on:
        - proj_container
        - rabbitmq

rabbitmq是我的celery broker,我也为此创建了一个容器。..

相关问题