2016-10-18 6 views
2

多すぎる:私は、スタックオーバーフローに関するトピックの多くを検索し、解決策を試してみた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) 
    } 

    } 

} 

誰もが、私はこのエラーを修正する方法のアイデアを持っていますし、私が代わりに結果を待つマップ機能を使用したい - 結果を待つために私の実装を変更する、それが魅力を好むが、パフォーマンスが非常に悪いの仕事します?私はすべてを試みたが、成功しなかった。

答えて

関連する問題