zoukankan      html  css  js  c++  java
  • django配置文件环境分离后celery的启动方式整理

    django项目中,当配置文件分离时:

    启动方式1:

    硬编码写死在manage.py中:

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dbmanager.settings.test")

    方式2:

    命令行启动时,指定对应环境:(会覆盖manage.py中的配置)

    python manage.py runserver --settings=dbmanager.settings.production 0.0.0.0:8000

    celery启动:

    
    
    
    version: '2'
    services:
      redis-local:
        image: harbor.asd.com/yw/dbm-redis:v_test_master_20190507.072141
        ports:
          - "6379:6379"
        volumes:
          - /etc/localtime:/etc/localtime:ro
    
      dbmanager:
        container_name: dbmanager-service
        image: harbor.asd.com/yw/dbmanager:v_pro_master_20190518.170636
        working_dir: /usr/src/app/dbmanager
        command:
          - /bin/sh
          - -c
          - |
            python manage.py crontab add
            crond
            python manage.py runserver --settings=dbmanager.settings.production 0.0.0.0:8000
        ports:
          - "8000:8000"
        volumes:
          - /etc/localtime:/etc/localtime:ro
          - /data/usr/src/app/dbmanager/log:/usr/src/app/dbmanager/log:rw
        depends_on:
          - redis-local
    
      celery-beat:
        container_name: celery-beat
        image: harbor.asd.com/yw/dbmanager:v_pro_master_20190518.170636
        working_dir: /usr/src/app/dbmanager
        command: python manage.py celery -A dbmanager beat -l info   # 需要在manage.py文件中指定os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dbmanager.settings.test") 配置环境,celery启动就可以找到对应环境启动,无需命令行指定配置文件环境
        volumes:
          - /etc/localtime:/etc/localtime:ro
        depends_on:
          - redis-local
    
      celery-worker:
        container_name: celery-worker
        image: harbor.asd.com/yw/dbmanager:v_pro_master_20190518.170636
        working_dir: /usr/src/app/dbmanager
        command: python manage.py celery -A dbmanager worker -l info
        volumes:
          - /etc/localtime:/etc/localtime:ro
          - /data/usr/src/app/dbmanager/slowlogs:/data/slowlogs:rw
        depends_on:
          - redis-local
    
      celery-flower:
        container_name: celery-flower
        image: harbor.asd.com/yw/dbmanager:v_pro_master_20190518.170636
        working_dir: /usr/src/app/dbmanager
    配置文件拆分后,django启动报错:
    
    mproperlyConfigured: The SECRET_KEY setting must not be empty.
    
    错误原因:
    
    manage.py中米有settigs的路径没有配置正确,导致执行的时候访问不到settings.py,所以报错
    
    解决办法:
    
    在manage.py中添加具体的配置文件即可
    
    if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings.dev")
  • 相关阅读:
    java定时读取文件
    Java面试:投行的15个多线程和并发面试题(转)
    读取一个文件,给定一个字符串,判断这个字符串在文件中出现的次数
    随机产生10个数,并每个数给定一个序号,然后将这10个数按照从小到大的顺序输出来,并带上序号输出
    找出给定字符串中出现最多的字符和次数
    公司开发部门GIT与SVN 之争
    浅谈Hibernate中的三种数据状态
    MyBatis框架的XML数据访问Dao层接口的组合使用
    浅谈WebLogic和Tomcat
    为什么我们不要 .NET 程序员
  • 原文地址:https://www.cnblogs.com/yum777/p/10896131.html
Copyright © 2011-2022 走看看