문제

내 django 응용 프로그램 사용하고 있는데 cherrypy 서버로 사용합니다.Cherrypy 새로 생성 스레드를 위해 모든 페이지 보기입니다.고 싶은에 액세스할 수 있는 모든 이들의 스레드(thread 책임에 대한 이야기를 장고)내에서 어떤니다.더 구체적으로 나가고 싶은에 액세스할 수 있 thread_data 이러한 각 스레드가 내부에서의 어느니다.이것이 가능한가요?그렇다면 어떻게 해야 하나요?

도움이 되었습니까?

해결책

CherryPy 의 wsgiserver 을 만들지 않는 새로운 실는 모든 요청에 대해-그것을 사용 수영장도 있습니다.각 worker 쓰레드의 서브 클래스 threading.실,그래서 그들 모두를 통해 액세스할 수 있습니다 threading.열거().

그러나 만약 당신이 이야기에 대해 구체적으로 cherrypy.thread_data,는 다른 뭔가가:a threading.로컬입니다.당신의 최신 버전을 사용하여 Python,다음 모두는 코드에서는 C 고 당신은(아마 정당하게)있지 않 크로스-스레드에서 그것에 액세스 Python.는 경우 필요 무슨 일을 하는지 알고,최고의 기술은 일반적으로 붙는 추가적인 참조를 이러한 것들에서는 글로벌 컨테이너에서 동일한 시간에 삽입되 thread_data 구조입니다.추천 dicts 와 weakrefs 키로 사람들을 위해 글로벌 컨테이너--있는 충분한 Python ORM 는 그들을 사용에 대한 연결풀(참조 내의 자신의 Geniusql,예를 들어)를 할 수 있어야 구현하는 방법을 알아보십시오들이 매우 쉽습니다.

다른 팁

이와 같은 질문에 대한 나의 첫 번째 응답은 당신에게 그것을하는 방법을 알려주는 것이 아니라 앞으로 나아 가기 전에 실제로 재고해야한다고 강조하는 것입니다. 나는 일반적으로 다중 프로세스 또는 비동기 솔루션을 선호하여 나사산 웹 서버로부터 멀어지게합니다. 믹스에 명시적인 스레드 간 커뮤니케이션을 추가하면 그러한 두려움이 증가합니다.

이와 같은 질문이 생기면 더 깊은 목표가 있습니다. 나는 당신이 스레드 간 커뮤니케이션을 해결할 것이라고 생각하는 것이 실제로 다른 더 안전한 방식으로 해결 될 수 있다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top