小编Yan*_*Yan的帖子

gen_server中的数据是否会在其主管重新启动后保留?

我有一个主管,启动许多gen_server.每个gen_server都有很多数据加载需要花费很多时间.我想知道错误发生的时间,存储在gen_server状态的数据及其进程dict是否会保留下次启动,所以我不需要再次启动它们?

erlang erlang-otp

5
推荐指数
1
解决办法
1087
查看次数

使用erlang mongodb驱动程序进行数据库操作的正确方法是什么?

我正在尝试官方的mongodb erlang驱动程序.我阅读了文档,还有一些我无法理解的东西.希望有人能告诉我使用它的正确方法是什么:

每次我做出一个动作,我都会写下如下内容:

{ok, Conn} = mongo:connect ({localhost, 27017}).
mongo:do (safe, master, Conn, test, fun() ->
    mongo:save (foo, {'_id', 1, bbb,22, y,2}),
    mongo:save (foo, {'_id', 4, bbb,22, y,2}) end).
mongo:disconnect().
Run Code Online (Sandbox Code Playgroud)
  1. 这是正确的方法吗?每次我完成数据库操作,Conn似乎都死了.或者我应该保留Conn而不是断开它以便下次重复使用它?没有全局变量可以保留,Conn所以我能想出的唯一方法是使用类似的东西gen_server并保持Conn其状态以便重用.这是正确的方法吗?

  2. 我也看到有一种connect_factory方法.但我无法弄清楚处理它的正确方法.是connect_factory一种比连接处理大量数据库操作更好的方法吗?以及如何Conn使用connect_factory

  3. 这是一个与mongodb无关的问题.我想在访问时给每个用户一个唯一的号码.所以我在db中保存了一个计数器,当用户访问时,计数器加1并作为唯一编号返回给用户.但我总是担心两个用户同时阅读db会得到相同的数字.如何使用mongodb将一个独特的计数器增加1?

非常感谢!

erlang mongodb

1
推荐指数
1
解决办法
1882
查看次数

标签 统计

erlang ×2

erlang-otp ×1

mongodb ×1