【问题标题】:Attribute Error in CeleryBeat Due to DataBaseSceduler由于 DataBaseSceduler 导致 CeleryBeat 中的属性错误
【发布时间】:2020-10-20 18:11:54
【问题描述】:

我正在尝试将 celery 用于异步作业,并且正在使用 celery、docker 和 digitalocean。

我在 docker-compose 文件中有如下描述的行。

如你所见,有 celery beat 部分。

在芹菜节拍部分,有“django_celery_beat.schedulers:DatabaseScheduler”,据我了解,它找不到 django_celery_beat.scheduler:DatabaseScheduler。我不明白我该如何解决这个问题。

version: '3.3'
services:
    web:
        build: .
        image: proje
        command: gunicorn -b 0.0.0.0:8000 proje.wsgi -w 4 --timeout 300 -t 80
        restart: unless-stopped
        tty: true
        env_file:
            - ./.env.production
        networks:
            - app-network
        depends_on:
            - migration
            - database
            - redis
        healthcheck:
            test: ["CMD", "wget", "http://localhost/healthcheck"]
            interval: 3s
            timeout: 3s
            retries: 10
    celery:
        image: proje
        command: celery -A proje worker -l info -n worker1@%%h
        restart: unless-stopped
        networks:
            - app-network
        environment:
            - DJANGO_SETTINGS_MODULE=proje.settings
        env_file:
            - ./.env.production
        depends_on:
            - redis
    celerybeat:
        image: proje
        command: celery -A proje beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler
        restart: unless-stopped
        networks:
            - app-network
        environment:
            - DJANGO_SETTINGS_MODULE=proje.settings
        env_file:
            - ./.env.production
        depends_on:
            - redis
    migration:
        image: proje
        command: python manage.py migrate
        volumes:
            - .:/usr/src/app/
        env_file:
            - ./.env.production
        depends_on:
            - database
        networks:
            - app-network
    webserver:
        image: nginx:alpine
        container_name: webserver
        restart: unless-stopped
        tty: true
        ports:
            - "80:80"
            - "443:443"
        volumes:
            - ./static/:/var/www/static/
            - ./conf/nginx/:/etc/nginx/conf.d/
            - webserver-logs:/var/log/nginx/
        networks:
            - app-network
    database:
        image: "postgres:12" # use latest official postgres version
        restart: unless-stopped
        env_file:
            - .databaseenv # configure postgres
        ports:
            - "5432:5432"
        volumes:
            - database-data:/var/lib/postgresql/data/
        networks:
            - app-network
    redis:
        image: "redis:5.0.8"
        restart: unless-stopped
        command:  [ "redis-server", "/redis.conf" ]
        working_dir: /var/lib/redis
        ports:
            - "6379:6379"
        volumes:
            - ./conf/redis/redis.conf:/redis.conf
            - redis-data:/var/lib/redis/
        networks:
            - app-network
#Docker Networks
networks:
    app-network:
        driver: bridge

volumes:
    database-data:
    webserver-logs:
    redis-data:

它给了我下面描述的结果。我被困在我的项目中好几个月了。

任何帮助将不胜感激。

【问题讨论】:

    标签: docker celery digital-ocean celerybeat


    【解决方案1】:

    我已经将所有这些上传到了一个 Ubuntu 服务器并且它已经工作了。我觉得我的电脑(Win 10)有些不兼容。

    谢谢。

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多