2012-08-30 4 views
2

간단한 파이썬 앱을 우분투 인스턴스의주기적인 셀러리 작업으로 설정하고 싶습니다. 권장 나는 구조를 설정하는 셀러리 문서를 따랐다이 잘 작동 내가 사용 ../proj에서주기적인 작업을 실행할 수 있습니다셀러리 정기적 인 작업 (파이썬으로 데몬으로)

proj/__init__.py 
/celery.py 
/tasks.py 

:

celery worker -B --app=proj 

내가 다음에 복사 celeryd 및 celerybeat 파일을 편집하고 기본 파일을 편집했습니다.

그러나 데몬을 시작하면 celeryd가 실행되지만 celery.py 구성을 찾지 못하고 연결 거부 오류가 기록됩니다.

나는 그것의 경로에 관련되어 생각합니다 다음 CELERYD_USER을 변경 떨어져, 워드 프로세서에 지정된

#/etc/default/celeryd: 

# Where to chdir at start. 
CELERYD_CHDIR="/home/user/" 

CELERY_CONFIG_MODULE="/home/user/proj" 

내가 다른 설정을 떠났다.

구성에서 --app를 사용해야하고 아마도 파이썬 환경을 지정해야한다고 생각하지만 어디서 어떻게 (가상 환경을 실행하지 않고 있는지) 확실하지 않습니다.

답변

0

저는 지금 당장 똑같은 일로 어려움을 겪고 있습니다. 이것은 내가 보는 방법입니다 :

작업을 실행하는 통신 응용 프로그램과 작업을 실행하는 작업자의 두 끝이 있습니다.

근로자는 앱을 알 필요가 없습니다! 작업자 파트의 경우 celeryconfig를 알면 충분합니다. 셀러리 작업자 --config = mypackage.celeryconfig와 함께 전달할 수 있습니다. 작업자는 BROKER_URL을 사용하여 대기열에 연결합니다. CELERY_IMPORTS를 선언하면 작업자가 작업 정의를 찾는 위치를 알 수 있습니다.

클라이언트 앱은 요청을 보낼 위치를 알아야합니다. 따라서 구성 파일을 전달하는 방법 중 하나를 사용하여 동일한 구성을 전달해야합니다. 나는이 하나를 집어 : 나는 데몬없이 실행할 때

from __future__ import absolute_import 

from celery import Celery 
celery = Celery() 
import backend.async.celeryconfig 
celery.config_from_object(backend.async.celeryconfig) 

이 설정은 나를 위해 작동을하지만, 어떤 이유로 데몬 내 CELERY_CONFIG_MODULE 설정을 무시합니다.


업데이트 :

CELERY_CONFIG_MODULE가 어디 /etc/init.d/celeryd 스크립트에서 사용되지 않습니다!

대신에, 나는 CELERYD_OPTS에 넣어 그것은 매력 :

CELERYD_OPTS="--config=backend.async.celeryconfig" 

다른 것은 VIRTUAL_ENV 변수가 celeryd 스크립트에서뿐만 아니라 무시됩니다처럼 작동합니다. 다른 celerybeat의 scirpt에 가상 ENV를 활성화 나의 adviced 설정은 다음과 같습니다

CELERYBEAT_OPTS="--schedule=/var/run/celerybeat-schedule --config=backend.async.celeryconfig" 

VIRTUAL_ENV="/path/to/.virtualenvs/your_env" 

# Python interpreter from environment. 
ENV_PYTHON="$VIRTUAL_ENV/bin/python" 

# How to call "celeryd-multi" 
CELERYD_MULTI="$VIRTUAL_ENV/bin/celeryd-multi" 

#CELERYD="$VIRTUAL_ENV/celeryd" 

# How to call "celeryctl" 
CELERYCTL="$VIRTUAL_ENV/bin/celeryctl" 

# How to call "celerybeat" 
CELERYBEAT="$VIRTUAL_ENV/bin/celerybeat" 
+0

내가 포기하고 대신 장고로 전환 두려워! –

+0

나는 그것을 해결했다. 허리 통증 이었어. 악마 화 스크립트가 일관성이 없습니다. – RKI

관련 문제