如何使用Lwt_pool



我想要一个具有最大连接数的 Redis 数据库连接池。看起来Lwt_pool是我正在寻找的解决方案,但我不太明白它应该如何工作。例如,我有一些问题:

  • 文档谈到Lwt_pool重用打开的连接很棒,但池如何知道哪些连接可供重用?据我所知,没有特别的方法来发出信号,API 仅提供use方法。

  • 有没有比Lwt文档更好的资源来了解它是如何工作的?我不容易找到代码示例或许多可用的资源。

  • 传递给 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)
    

相关内容

  • 没有找到相关文章

最新更新