多すぎる:私は、スタックオーバーフローに関するトピックの多くを検索し、解決策を試してみたWSClient - 私はCentOSの6にプレイフレームワーク2.4で働いていると私のアプリケーションは、この例外をスローして開いているファイル
java.net.SocketException: Too many open files
:
- オープンファイルの数を65535に増やします。
- /etc/security/limits.confでハードリミットとソフトリミットを変更します。
- /etc/sysctl.confのfs.file-maxの値を変更します。
- ファイル/ proc/sys/net/ipv4/tcp_fin_timeoutのタイムアウトを短縮しました。
エラーが発生し続けます。
@Singleton
class RabbitService @Inject()(ws:WSClient) {
def myFunction() {
ws.url(“url”).withHeaders(
"Content-type" -> "application/json",
"Authorization" -> ("Bearer " + authorization))
.post(message)
.map(r => {
r.status match {
case 201 => Logger.debug("It Rocks")
case _ => Logger.error(s"It sucks")
}
})
}
}
場合、私は:他のサイトでは、私は彼らがWSClientから)(メソッドのクローズを呼び出していなかったが、私の場合、私は依存性注入で働いているので、同じ問題に直面している人を見つけました
@Singleton
class RabbitService @Inject()(ws:WSClient) {
def myFunction() {
val response = ws.url("url")
.withHeaders(
"Content-type" -> "application/json",
"Authorization" -> ("Bearer " + authorization))
.post(message)
Try(Await.result(response, 1 seconds)) match {
case Success(r) =>
if(r.status == 201) {
Logger.debug(s"It rocks")
} else {
Logger.error(s"It sucks")
}
case Failure(e) => Logger.error(e.getMessage, e)
}
}
}
誰もが、私はこのエラーを修正する方法のアイデアを持っていますし、私が代わりに結果を待つマップ機能を使用したい - 結果を待つために私の実装を変更する、それが魅力を好むが、パフォーマンスが非常に悪いの仕事します?私はすべてを試みたが、成功しなかった。