2012-04-19 3 views
1

내 셀러리 데이터베이스 백엔드 설정은 다음과 같습니다 내 멧세이로 RabbitMQ를 사용하고Django-Celery/RabbitMQ는 어떤 작업 결과를 저장합니까?

CELERY_RESULT_BACKEND = "database" 
CELERY_RESULT_DBURI = "mysqlite.db" 

.

결과가 db에 저장되는 것처럼 보이지 않지만 작업이 완료된 후에도 결과를 읽을 수 있습니다. 메모리에 있거나 RabbitMQ 캐시에 있습니까?

동일한 결과를 여러 번 읽지 않으려 고 시도 했으므로 아마도 한 번 읽은 다음 멍청한 반응을 보일 것입니다.

+0

사실 그것은 sqlite db 크기가 커지고있는 것 같습니다. – michael

답변

1

CELERY_RESULT_DBURI는 장고 (Django)가 아닌 sqlalchemy 결과 백엔드를위한 것입니다. Django는 DATABASES 설정 (또는 이전 Django 버전의 경우 DATABASE_ * 설정)에서 구성된 기본 데이터베이스를 항상 사용합니다.

+5

확인. 그래서 그들이 장고 더미에 쌓여서 결과로 무엇을합니까? ORM 방식으로 결과와 상호 작용하는 예를 찾을 수 없습니다. – michael

0

셀러맨 데몬은 정상적으로 작동하지만 작업 결과를 수집하는 데 어려움이 있습니다. task_result.get()은 시간 초과를 유도합니다. 및 task.state 항상 보류 .. (하지만 작업이 완료되었습니다) 나는 별도의 sqlite dbs, 노동자에 의해 공유 된 단일 포스트 그레스 DB를 시도했다. 그러나 나는 아직도 결과를 얻지 않는다. CELERY_RESULT_DBURI는 나에게 쓸모없는 것처럼 보입니다 (셀러리 2.5의 경우) 더 새로운 설정이라고 생각합니다. 모든 제안 ...


편집을 환영합니다 : 그것은 모두 내 잘못이야 : 내가 장식, ignore_results 내 작업에 추가 매개 변수를 제공 = 진정한 매개 변수가이 문제를 만듭니다. 이 키를 삭제하고 그것은 매력처럼 작동합니다 :

관련 문제