【问题标题】:How to use Lwt_pool如何使用 Lwt_pool
【发布时间】:2014-12-10 17:01:59
【问题描述】:

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

  • 文档谈到 Lwt_pool 非常适合重用打开的连接,但池如何知道哪些连接可重用?据我所知,没有特别的方式来表明这一点,API 只提供use 方法。

  • 有没有比Lwt 文档更好的资源来了解它的工作原理?我无法轻易找到代码示例或许多可用资源。

【问题讨论】:

    标签: ocaml ocaml-lwt


    【解决方案1】:
    • 传递给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)
      

    【讨论】:

    • 谢谢,您的第一条评论是它点击的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 2012-02-29
    • 2019-02-09
    相关资源
    最近更新 更多