2010-12-11 4 views
4

ZODB를 사용하여 Python 개체를 지속시킵니다. web2py를 프레임 워크로 사용하고 있습니다.데이터 읽기 후에 ZODB 연결을 닫아야합니까?

사용중인 ZODB 데이터베이스는 읽기 전용으로 액세스됩니다. 내 모델 내에서 데이터베이스를 여는 코드를 작성했습니다. 그런 다음 connection.root() 개체는 RAM에 캐시되므로 다른 요청을 위해 거기에 머물러 있습니다.

ZODB 데이터베이스가 읽기 액세스에만 사용되며 보류중인 쓰기가없는 경우 ZODB 데이터베이스를 닫아야합니까?

답변

2

아니요. 닫을 필요가 없습니다. 각각의 열린 커넥션은 약간의 메모리를 소모하지만, 어쨌든 수천 개를 가지지 않는 것처럼 들리지만, web2py 프로세스 당 하나만 사용하십시오.

+0

OK .. 고맙습니다. – easysid

1

닫을 필요는 없지만 정기적으로 connection.cacheMinimize()을 실행해야합니다 , 만약 당신이 피하고 싶다면, 캐시 된 객체가 당신의 메모리를 먹는다. 데이터를 쓰고 정기적으로 커밋하는 경우 commit()cacheMinimize()이 포함되어 있으므로 건너 뛸 수 있습니다.

관련 문제