サーバーがイベントをJSフロントエンドに送信して、処理中のお金のトランザクションを表示するアプリケーションに取り組んでいます。私が実装した方法は意図したとおりに機能します。ただし、数時間後、ヒープが増加し、その結果サーバーが停止することに気付きました。nginxが正しく構成されていないことが原因である可能性があることをどこかで読みましたが、キープアライブはわずか数秒に設定されています。次のようなことを試みたときのメモリリークの問題に関する投稿もいくつか見ました。
val newTransaction: Enumerator[String] = {
Enumerator.generateM[String] {
Promise.timeout(getNewTransactions, checkingInterval 500)
}
}
...
Ok.stream(newTransaction &> EventSource()).as("text/event-stream")
getNewTransactions は、アカウントに新しいトランザクションが到着したかどうかを確認するために Redis をヒットする単なるメソッドです。
最新の Scala バージョン 2.10.2 を使用するようにプロジェクトを更新しようとしましたが、解決しないようです。それまでの間、私はそれが理解できるまで JavaScript ポーリングに頼っています。これを解決する方法を知っている人はいますか?