ajax long pollingとGeventを使用してチャットを実装しました。 クライアントを読み込むには、更新ビューをajaxし、 を待ってください。更新を待つ。Django、Ajax long polling、Postgresql:idle transaction
問題: 要求の開始時に(セッション情報を取得するために)Djangoによって開かれたPostgreSQLトランザクションは、要求が終了するまで閉じられません。これらのアイドル状態のトランザクションは、大量のメモリを消費します。
要求を閉じることなく、PostgreSQLトランザクション を閉じる最もクリーンな方法は何でしょうか?私は現在 request_finishedシグナルを手動で送信していますが、ハックのように感じます。
gevent/gunicorn/apache(バックエンド)でnginx(フロントエンド)を使ってsocketioを動作させようとしましたが、長い時間がかかりませんでした。 Nginxでは、改造を頻繁にやりなおすことはできません。 それでも、私たちはsocketioのユーザーIDをdjangoのセッションIDにリンクできませんでしたので、ユーザー情報を取得できませんでした。あなたが完全なチュートリアルをお勧めするなら、それを見たいと思うでしょう。私たちが見つけたsocketio - chatチュートリアルのほとんどは、djangoのユーザ情報やフロントエンドを使わないでください。 – Ashe
限りSocketIOを作るなどとDjango認証バックエンドは一緒に仕事:https://gist.github.com/fd8e9631368e447de702 –
を正直に言うと、私たちは今、ロールバックされませんが、我々は決定的後でそれを維持します。ありがとうございました。 – Ashe