2014-05-17 6 views
0

web.py와 함께 memchached를 사용하여 세션을 저장하고 있습니다. 속도와 확장 성 문제로 인해 디스크에 저장하지 않으려 고합니다. pylibmc와 함께 here의 코드를 사용하고 있습니다.web.py와 memcached를 이용한 스레딩

그러나 계속 깨지기 쉽습니다. 나는 그것을 깨뜨리는 여러 스레드 수 있습니다 생각합니다. 그 memcached 확실히 세션에 대한 디스크 저장소를 사용하여 잘 작동하지만, 사용자 정의 저장소와 함께, 그냥 달려 있습니다.

여기에 스레드가 문제가 될 수 있습니까? 어떻게 해결할 수 있을까요?

답변

0

각 요청마다 새로운 mc 개체를 생성하면 문제가 해결됩니다. 따라서 MemCacheStore은 다음과 같습니다.

class MemCacheStore(web.session.Store): 
       ... 
    def __contains__(self, key): 
     mc = memcache.Client(['127.0.0.1:11211'], debug=0) 
     return mc.get(key) != None 
    def __getitem__(self, key): 
     mc = memcache.Client(['127.0.0.1:11211'], debug=0) 
     return mc.get(key) 
       ...