Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想要一个具有最大连接数的 Redis 数据库连接池。看起来Lwt_pool是我正在寻找的解决方案,但我不太了解它应该如何工作。例如,我有一些问题:
Lwt_pool
文档谈到Lwt_pool重用打开的连接非常好,但是池如何知道哪些连接可重用?据我所知,没有特定的方式来表示这一点,API 只提供了use方法。
use
有没有比Lwt文档更好的资源来了解它是如何工作的?我无法轻易找到代码示例或许多可用资源。
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)