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")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM