2014-01-18 2 views
0

현재 Tornado Webserver를 사용하여 Python 응용 프로그램을 실행 중입니다. Supervisord를 사용하여 다른 포트에서 4 개의 토네이도 인스턴스를 시작합니다. 이것들 앞에서 Nginx를 서버 간로드 밸런싱을 위해 실행하고 있습니다.Python : 인스턴스간에 데이터 공유

문제는 내가 긴 폴링을 구현했기 때문에 다른 토네이도 인스턴스간에 데이터를 공유해야한다는 것입니다.

내가 아는 한 사용자가 요청을 보내면 사용자는 토네이도 인스턴스 중 하나에 연결되지만 콜백은 해당 단일 인스턴스에만 저장되며 푸시되는 데이터는 단일 인스턴스의 콜백에만 푸시됩니다 .

인스턴스간에 콜백을 어떻게 공유합니까? Redis와 함께 놀았습니다. 문제는 키 저장소에 콜백을 저장하는 방법입니다. 더 쉬운 방법이 있습니까? 아니면 레디 스에서 어떻게합니까?

나는이 스레드에서 찾고있다하지만 그들은 정말 나에게 완전한 대답을하지 않습니다

Sharing data between multiple tornado instances

감사합니다!

답변

1

콜백을 다시 설정할 수 없습니다. 대신 데이터을 다시 입력하고 각 프로세스는 해당 데이터를 읽고 자체 콜백에 전달합니다.

+0

감사합니다. 그래서 나는 다른 프로세스가 Redis 또는 그들이보고있는 특정 영역/채널에 새로운 데이터가 언제 있는지 알 수 있도록 무언가를 만들어야합니까? 그런 다음 데이터를 가져 와서 콜백으로 보냅니다. – ReturnToZero

+0

예. 소규모에서는 모든 프로세스가 청취하는 하나의 채널 만 가질 수 있지만 성장함에 따라 어떤 방식 으로든 데이터를 세분화해야합니다. –

관련 문제