2012-03-18 3 views
0

메모리/memcache에서 일부 데이터를 조작하려고합니다. 중요한 것은 GAE가 메모리에서 데이터를 언로드하기로 결정할 때 데이터를 영구 저장 장치에 저장하고 싶지 않기 때문입니다.GAE의 메모리/메모리에서 객체 언로드를 감지합니다.

맞나요? GAE에 대한 memcached 개체 언로드 이벤트를 감지 할 수있는 방법이 없습니다.

글로벌 변수의 값을 데이터 저장소에 저장하려면 여전히 __del__()을 덮어 쓸 수 있습니까? (이 사건을 저에게 증명하는 것은 어렵습니다.)

답변

4

죄송합니다. 그러나 이것은 완전히 잘못된 길입니다. 올바른 것은 데이터 스토어와 memcache에 데이터를 쓰고 나중에 memcache에서 데이터를 읽으려고 시도하고 데이터 스토어에서 데이터를 읽고 memcache에 다시 쓰려고 시도하는 것입니다.

__del__ 오버로드도 나쁜 생각입니다. 그것은 일반적으로 나쁜 생각이며,이 목적을 위해서 그것은 비참합니다. 왜냐하면 당신의 프로세스가 어떤 __del__ 방법도 호출하지 않고 종료 될 수있는 많은 이유가 있기 때문입니다. 예를 들어 하드 메모리 부족 조건, 파이썬 또는 리눅스 커널의 하드 크래시, 하드웨어 오류 등이 있습니다.

생각하지 않고도 memcache와 데이터 저장소를 쉽게 통합하려면 NDB - 투명하게 처리합니다.