Tôi đã thực hiện một cuộc trò chuyện, sử dụng tính năng bỏ phiếu dài và Gevent. Để đọc, ứng dụng sẽ cập nhật chế độ xem cập nhật và đợi với Gevent.event.wait để cập nhật.Django, cuộc thăm dò ý kiến dài của Ajax, Postgresql: giao dịch nhàn rỗi
Sự cố: Giao dịch Postgresql được mở bởi Django khi bắt đầu yêu cầu (để nhận thông tin phiên) không được đóng cho đến khi kết thúc yêu cầu. Và những giao dịch nhàn rỗi này mất rất nhiều bộ nhớ.
Cách nào là cách sạch nhất để đóng giao dịch Postgresql mà không đóng yêu cầu? Tôi hiện đang gửi tín hiệu yêu cầu request_finished theo cách thủ công nhưng nó giống như một bản hack.
Chúng tôi mất một thời gian dài cố gắng để làm cho socketio làm việc thông qua nginx (front end) với gevent/gunicorn/apache (back end). Nginx không thể làm điều đó mà không có số lượng mod cao. Và ngay cả với những người đó, chúng tôi không thể liên kết id người dùng socketio với id phiên django, vì vậy chúng tôi không thể lấy thông tin người dùng. Nếu bạn có một hướng dẫn đầy đủ để giới thiệu, chúng tôi rất thích nhìn thấy nó. Hầu hết các hướng dẫn sử dụng socketio - chat mà chúng tôi tìm thấy, không sử dụng thông tin người dùng django hoặc giao diện người dùng. – Ashe
Theo như làm cho phụ trợ SocketIO và django auth làm việc cùng nhau: https://gist.github.com/fd8e9631368e447de702 –
Thành thật mà nói, chúng tôi sẽ không quay trở lại ngay bây giờ, nhưng chúng tôi chắc chắn sẽ giữ điều đó cho sau này. Cảm ơn bạn. – Ashe