保证初始化没有错误的更好方法

时间:2015-07-02 11:11:49

标签: ruby mongodb

我的初始化失败了。

实现init的更好方法是什么?

@client = Mongo::Client.new([ cfg["HOST"] ], :database => cfg["NAME"])

至少重试10次。

我找到了类似的解决方案

begin  
  coll.insert( { "counter" => i, "named" => "name#{i}" })
rescue Mongo::ConnectionFailure => ex  
  sleep(0.5)
  coll.insert( { "counter" => i, "named" => "name#{i}" })
end  

有没有优雅的方法呢?因为我需要在我的项目很多地方做类似的init

1 个答案:

答案 0 :(得分:0)

您可以将连接逻辑提取到另一个方法并执行

def connect
  try_connecting
rescue Mongo::ConnectionFailure => ex
  fail = true
  sleep(0.5)
ensure
  return defined?(fail)
end

10.times { break unless connect }

或者这个:

select country,state,min(value) from table1 group by country;