我愿意为cassandra db使用客户端,所以我需要将其初始化为:
client = CQEx.Client.new!
我创建了两条路径,读写指向控制器中的动作。
问题是,我如何只对客户端进行一次初始化,并且每次都在控制器的操作中使用它?
我应该创建一个GenServer并从控制器操作向它发送消息吗?这样我就可以在GenServer中维护cassandra客户端了吗?
我每次执行动作时都要创建客户端吗?!
这里的建议是什么?
答案 0 :(得分:1)
我不得不再挖掘一些,但看起来CQEx.Client.new!
实际上并没有初始化客户端,而且有点误导。
实现https://github.com/matehat/cqex/blob/master/lib/cqex/client.ex#L7显示它在内部调用:cqerl.get_client()
,如果您查看cqerl
库,它会产生连接的主管,因此可能没有必要处理并发并且可以安全地使用get_client
并且可以正常工作。