2012-12-02 3 views
1

나는 werkzeug 캐싱을 사용하여 요청간에 메모리에서 일반적으로 사용되는 객체를 캐시합니다. 나는 리팩토링을 많이 해왔고 청사진을 사용하기 시작했으나 이제는 캐시에 쓰려고 할 때 응용 프로그램이 충돌합니다. 그냥 죽기 때문에 그것에 대한 모든 디버그 정보를 얻을 수 없습니다. 누구나 어디를보아야하는지, 또는 더 나은 방법을 찾으려는 사람이 있습니까? 데이터베이스에서 읽는 데이터는 거의 변경되지 않으므로 웹 서버에서 요청을 가로 질러 캐시에 저장하고 10 분 또는 20 분마다 새로 고침하고 새로 고칩니다.Flask Blueprints와 werkzeug.contrib.cache

+1

출력이 있어야합니다 - 애플리케이션을 어떻게 실행하고 있습니까? [디버그 모드] (http://flask.pocoo.org/docs/config/#builtin-configuration-values)가 활성화되어 있습니까? 터미널에서 응용 프로그램을 실행중인 경우 적어도 충돌이 발생하면 추적을 얻어야합니다. – Natan

+0

또한 프로젝트의 일부 코드가 도움이 될 것입니다. – Natan

+1

우리에게 아이디어를주기 위해 몇 가지 코드를 공유하십시오. – codegeek

답변

1

나는 그런 작은 정보에 대해 사과한다. 나는 계속할 것이별로 없었다. 나는 그것을 버릴 것이라고 생각했다. 그래서 이것은 큰 붉은 청어였습니다.

진짜 대답은 ... 나는 바보입니다.

getattr 함수를 오버라이드 한 객체를 캐싱했는데, 실제로 잘못된 입력 오류가있었습니다.

return self.__getatribute__(name) 

getattribute에 t가 없습니다. 이로 인해 무한 루프가 발생하고 응용 프로그램이 자동으로 종료됩니다. 도움을 주셔서 감사합니다. 다음에 좀 더 자세한 정보를 알려 드리겠습니다.