如何在erlang中存储mongodb连接池。
在一个函数中我创建了数据库连接池
Replset = {<<"rs1">>, [{localhost, 27017}]},
Pool = resource_pool:new (mongo:rs_connect_factory (Replset), Count),
在第二个函数中我需要从池中获取连接。
{ok, Conn} = resource_pool:get (Pool).
但是我不能这样做,因为我在另一个函数中创建了池。 我尝试使用记录,但没有成功(
我需要做些什么才能让它有点全局交叉模块?
答案 0 :(得分:1)
指导您正确方向的一些要点:
请注意,这与大多数函数式编程样式高度一致。
要解决您的问题,您需要一个流程来跟踪您的资源池。客户端然后调用此过程并请求资源。然后,资源管理器可以通过监视器处理当客户端在检出资源时死亡时应该发生什么。
最简单的入门方法是从Github获取devinus/poolboy
并查看该段代码。
答案 1 :(得分:1)
我认为最好的解决方案是使用gen_server并将数据存储在其状态中。 另一种方法是使用ets表。