モデルの変更を Chrome クライアントのバックボーン コレクションにストリーミングしている Web アプリがあります。更新の種類と見ているものに応じて、ページの一部をレンダリングする場合とレンダリングしない場合があるいくつかのバックボーン ビューがあります。たとえば、モデルに変更を加えると、コレクションのビューが再レンダリングされ、更新中のモデルの詳細パネル ビューが開いている場合と開いていない場合があります。これらのモデルの変更は、サーバー側のワークフローが非常に冗長で迅速なモデルの変更を伴うため、非常に迅速に発生する可能性があります。
問題は次のとおりです。クライアントにメッセージを送信するときに、Web サーバーのプロセスで多数の errno 32 パイプ破損メッセージが表示されますreadyState
。
発生していると思われるonmessage
のは、次のメッセージが着信するまでに、コールバックでさまざまなビューのレンダリングが完了していないことです。標準出力でこれらのトレースバックを取得した後も、websocket 接続は引き続き機能し、UI は引き続き更新されます。
モデルの変更をメッセージ キューから読み取って websocketにeventlet.sleep(0.02)
送信するループを挿入すると、壊れたパイプ メッセージは消えますが、これは実際の解決策ではなく、厄介なハックのように感じます。
websocket のonmessage
機能があまりにも多くの仕事をしようとしていて、次のメッセージが入ったときにまだ忙しいという同様の問題を抱えている人はいますか? 誰にも解決策がありますか?