2012-10-15 3 views

답변

66

Django 쉘에서 작업을 실행 해 보았습니까? 작업의 .apply 메서드를 사용하여 열심히 로컬로 실행되도록 할 수 있습니다. 작업을 가정

tasks 서브 모듈에 장고 응용 프로그램 myappmy_task라고 :

$ python manage.py shell 
>>> from myapp.tasks import my_task 
>>> eager_result = my_task.apply() 

결과 인스턴스는 보통 AsyncResult 유형과 동일한 API를 가지고 제외한 결과는 항상 열심히하고 C로 평가되어 있고 .apply() 메서드는 작업이 완료 될 때까지 차단됩니다.

+0

피라미드 프로젝트에서 어떻게 동일한 작업을 수행 할 수 있습니까? /myproject라는 => celeryconfig.py, setup.py, development.py, /뷰/celerytasks => mycelerytask.py 여기에 내가 'mycelerytask를 실행하려면 부탁해 : 디렉토리 구조는 같은 것입니다. py '(주기적 작업) 명령 줄에서 수동으로. 도울 수 있니? – Workonphp

+0

@Workonphp 불행히도 Pyramid에 익숙하지 않아서 Celery가 Pyramid와 어떻게 통합되는지 전혀 알지 못합니다. (위의 내 솔루션은 장고에 특화되어 있으므로 장고가 모든 장고 프로젝트 디렉토리에서 생성하는'manage.py' 스크립트가 필요합니다.) 죄송합니다. –

5

파이썬/장고 쉘에서 작업을 실행하는 쉘과 celery worker (python manage.py celery worker)을 실행하는 쉘이라는 두 개의 쉘을 열어야한다고 생각합니다. 이전 대답에서 말한 것처럼 apply() 또는 apply_async()

나는 비참한 명령을 사용하지 않도록 답변을 편집했습니다.

+1

manage.py celeryd는 현재 사용되지 않습니다. http://stackoverflow.com/a/23921568/1459594 – rschwieb

관련 문제