ajax long polling과 Gevent를 사용하여 채팅을 구현했습니다. 클라이언트를 읽으려면 업데이트보기를 실행하고 을 기다립니다. 업데이트를 기다립니다.Django, Ajax long polling, Postgresql : 유휴 트랜잭션
문제 : 요청 시작시 Django에서 열린 (세션 정보를 얻기 위해) PostgreSQL 트랜잭션은 요청이 끝날 때까지 닫히지 않습니다. 그리고 유휴 트랜잭션은 많은 메모리를 사용합니다.
요청을 종료하지 않고 Postgresql 트랜잭션 을 닫는 가장 깨끗한 방법은 무엇이겠습니까? 현재 request_finished 신호를 수동으로 보내고 있지만 해킹처럼 느껴집니다.
우리는 gevent/gunicorn/apache (백엔드)를 사용하여 nginx (프론트 엔드)를 통해 socketio 작업을 시도하는 데 오랜 시간을 보냈습니다. Nginx는 많은 양의 개조 물 없이는 그렇게 할 수 없습니다. 그런 경우에도 socketio 사용자 ID를 django 세션 ID와 연결할 수 없어 사용자 정보를 얻을 수 없었습니다. 추천할만한 튜토리얼을 가지고 있다면, 그것을보고 싶을 것입니다. 대부분의 socketio - chat 튜토리얼은 django 사용자 정보 나 프론트 엔드를 사용하지 않습니다. – Ashe
SocketIO 및 django auth 백엔드가 함께 작동하도록 만드는 방법은 다음과 같습니다. https://gist.github.com/fd8e9631368e447de702 –
솔직히 롤백하지는 않지만 나중에 다시 사용하도록하겠습니다. 고맙습니다. – Ashe