2017-03-03 4 views
0

셀러리 설명서에 따르면 구성 파일은 작업 디렉터리 또는 파이썬 경로에 있어야합니다.셀러리 구성 파일 위치

from celery import Celery 
from properties import config_file 
import sys 


sys.path.append(config_file) 
app = Celery() 
app.config_from_object(config_file.split('.')[0]) 

여기서 config_file은 /opt/celery/celery_config.py입니다. 사용자가 설정 파일을 만들 수있는 자유를주기위한 것입니다. 설명서에 따르면 구성 파일은 작업 디렉토리 또는 sys 경로에 있어야합니다. 나는 sys 경로에 config_file을 추가했지만 worker가 시작되면 가져 오기 오류가 발생합니다.

Celery 인스턴스를 생성하는 모듈과 동일한 디렉토리에 config_file이 있어야합니까?

+0

속성 모듈에 대한 코드도 제공 할 수 있습니까? –

답변

0

동일한 디렉토리에 config가있을 필요는 없습니다.

간단한 해결책은 셀러리 작업자를 시작할 때 디렉토리를 변경하는 것입니다. 수퍼바이저 또는 다른 도구를 사용하여 작업자를 시작하는 경우 작업자를 실행하려는 디렉토리를 지정할 수 있습니다.

이 경우 디렉토리를 /opt/celery으로 지정하고 셀 레이어 명령을 celery worker -l info --config=celery_config으로 지정하여 /opt/celery/celery_config.py에서 구성을 선택할 수 있습니다.

또는 sys.path에 해당 디렉토리를 추가 할 수 있습니다. 셀러리 모듈에서 디렉토리를 sys.path에 추가하십시오.

import sys 

from celery import Celery 


sys.path.append('/opt/celery/') 


app = Celery() 
app.config_from_object('celery_config') 

/opt/celery/celery_config.py에서 구성을 선택합니다.

+0

내가 sys.path.append (config_file)를 호출했는데 어떤 이유로 든 작동하지 않습니다. Config 클래스 객체를 사용하여 끝났습니다. config_file을 읽음으로써이 클래스의 속성을 설정했습니다. – amrx

+0

@amrx sys.path.append (config_file) 대신'sys.path.append (dir)'을 사용하지 않아야합니까? – ChillarAnand