【问题标题】:Ruby: How to handle Mongo replica set Mongo::ConnectionFailure exception?Ruby:如何处理 Mongo 副本集 Mongo::ConnectionFailure 异常?
【发布时间】:2014-09-19 13:48:18
【问题描述】:

如何处理 Ruby 中的 Mogo 副本集 Mongo::ConnectionFailure 异常?

试过了:

  begin
    $mongo = Mongo::MongoReplicaSetClient.new(['seed1:27017', 'seed2:27017', 'seed3:27017'], :read => :primary, :rs_name => 'rs0', :connect_timeout => 30, :op_timeout => 30)
    mongo = $mongo.db('db_name')
  rescue Exception => ex
    puts ex.message
  rescue Mongo::ConnectionFailure => ex
    puts ex.message
  rescue RuntimeError => ex
    puts ex.message
  rescue => ex
    puts ex.message
  end

没有人可以处理救援块的异常信息

【问题讨论】:

    标签: ruby mongodb exception-handling replication


    【解决方案1】:

    解决了:

    def rescue_mongo_failures(max_retries=60)
      retries = 0
    
      begin
        yield
      rescue Mongo::ConnectionFailure => ex
        retries += 1
        # here you can get ex.message
        raise ex if retries > max_retries
        retry
      end
    end
    
    def rescue_mongo_failures do
      $mongo = Mongo::MongoReplicaSetClient.new(['seed1:27017', 'seed2:27017', 'seed3:27017'], :read => :primary, :rs_name => 'rs0', :connect_timeout => 30, :op_timeout => 30)
      mongo = $mongo.db('db_name')
      $mongo.db.stats
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      • 2017-02-01
      • 2011-02-16
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多