2017-01-13 8 views
0

에 저장합니다. 장고 앱에 Celery를 넣으면 두 개의 다른 파이썬 프로그램이 하위 프로세스 메소드를 통해 내 장고 앱의 입력을 처리 할 수 ​​있습니다. 내 질문은 어떻게 하위 프로세스의 출력에 액세스합니까? 당시 파이썬 프로그램을 만들었을 때 stdout과 stderr를 통해 로그 파일 (두 앱의 출력)에 액세스했습니다. 장고에서 셀러리를 사용할 때도 마찬가지입니까? 로그 파일의 영향을받은 CELERY_RESULT_BACKEND (내 장고 앱의 db를 여기에 할당해야하는 경우) 값입니까?Celery의 서브 프로세스 stdout과 stderr을 장고 앱

지금까지 내가 무슨 짓을했는지입니다 :에서 하위 프로세스를 통해

  1. 액세스 두 개의 응용 프로그램을 내 tasks.py 나는 지금 내 데시벨로 내 브로커의 DB, 레디 스를 할당

  2. CELERY_RESULT_BACKEND. 내 계획은 로그 파일을 가져 와서 내 장고 응용 프로그램의 db에 저장하여 해당 db에 액세스 할 수 있도록하는 것입니다.

몇 가지 도움을 줄 수 있습니까?

답변

0

일반적으로, 당신은 단지 셀러리 작업의 반환 값입니다 작업 결과, 신경, 그리고 적어도 result_expires 시간 (보통 1 일)에 대한 귀하의 result_backend에 저장됩니다. 따라서 특정 작업의 결과에 액세스하려는 정도까지 작업 ID를 사용하면됩니다.

+0

그럼 반환 값이 있습니다. 디버깅 문을 찾고 작업을 받았을 때 그 정보를 얻지 못할 수도 있습니다. 하지만 결과/작업 메타 데이터와 작업 반환 값에 액세스 할 수 있습니다. – 2ps

+0

아, 이제 알겠습니다. 이것이 작동하지 않으면, 아마 stdout과 stderr의 값을 제어 할 수 있습니다. : D 고마워! – sparklights

+0

** 첫 번째 의견을 삭제했습니다. 죄송합니다. 이전에 회신을 보지 못했습니다. 답장을 보내 주셔서 감사합니다! – sparklights