1

最大接続数の Redis データベース接続のプールが必要です。私が探しているソリューションのように見えますLwt_poolが、どのように機能するかはよくわかりません。たとえば、私が持っているいくつかの質問:

  • ドキュメントLwt_poolは、開いている接続を再利用するのに優れていると述べていますが、プールはどの接続が再利用可能かをどのように知るのでしょうか? 私が見る限り、それを通知する特定の方法はなく、API はuseメソッドを提供するだけです。

  • Lwtそれがどのように機能するかを学ぶために、ドキュメントよりも優れたリソースはありますか? コード例やそれに関する多くのリソースを簡単に見つけることができません。

4

1 に答える 1

3
  • 渡す関数useはスレッドを返します。スレッドが終了すると、接続が解放されてプールに戻されます。

  • ソースコードはかなり読みやすいです。この場合:

    let use p f =
      acquire p >>= fun c ->
      Lwt.catch
        (fun () ->
           let t = f c in
           t >>= fun _ ->
           release p c;
           t)
        (fun e ->
           checked_release p c;
           Lwt.fail e)
    
于 2014-12-11T10:54:41.833 に答える