메인 애플 리케이션 API에 자연 언어 처리 지원을 제공하는 파이썬 기반 웹 서비스를 구축 중이다. NLP가 너무 무거 우므로 디스크에서 몇 개의 매우 큰 (50-300MB) 코퍼스 파일을 unpickling해야 모든 종류의 분석을 수행 할 수 있습니다.파이썬 Flask/Gevent 웹 서비스에서 대형 객체 캐싱
이러한 파일을 모든 요청에 사용할 수 있도록 메모리에로드하려면 어떻게해야합니까? memcached와 redis로 실험했지만 훨씬 작은 객체를 위해 설계된 것 같습니다. Flask g
개체를 사용하려고했지만 한 요청을 통해서만 지속됩니다.
동시 연결을 허용하기 위해 gevent (또는 다른) 서버를 사용하는 동안이 작업을 수행 할 수있는 방법이 있습니까? 이 코퍼스는 완전히 읽기 전용이므로 여러 개의 greenlets/threads/프로세스에 메모리를 노출시키는 안전한 방법이되어야합니다.
어리석은 질문이라면 정말 고마워요. 파이썬으로 꽤 오랫동안 일해 왔지만, 웹 프로그래밍에 비교적 익숙하지 않습니다.
IMO 대신 피클 이외의 다른 저장 형식을 사용해야합니다. 어때요 ... 데이터베이스? –
@ MarkusUnterwaditzer 예, 끝났습니다. NLP의 어려움은 대부분의 작업에서 일반적으로 일종의 특수화 된 데이터 구조로 메모리에로드 된 전체 자료가 필요하다는 것입니다. 특정 작업에 대해서만 코퍼스가 필요한 경우가 있습니다 (예 : 끝난 것처럼)이 문제를 해결할 수도 있지만 일반적인 경우를 지원하는 데이터 저장소를 알지 못합니다. – sbrother