diff --git a/.ruby-version b/.ruby-version index 73462a5..95e3ba8 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.5.1 +2.5 diff --git a/lib/ghtorrent/adapters/mongo_persister.rb b/lib/ghtorrent/adapters/mongo_persister.rb index 4a6f227..ffab708 100644 --- a/lib/ghtorrent/adapters/mongo_persister.rb +++ b/lib/ghtorrent/adapters/mongo_persister.rb @@ -108,13 +108,13 @@ def mongo host = config(:mongo_host) port = config(:mongo_port) db = config(:mongo_db) - replicas = config(:mongo_replicas) - replicas = if replicas.nil? then - '' - else - ',' + replicas.strip.gsub(' ', ',') - end + + hosts = if replicas.nil? then + ["#{host}:#{port}"] + else + ["#{host}:#{port}"] + replicas.strip.split(/ /) + end ssl = case config(:mongo_ssl) when 'true', 'True', 't', true @@ -123,13 +123,22 @@ def mongo false end - Mongo::Logger.logger.level = Logger::WARN - @mongo = Mongo::Client.new(["#{host}:#{port}"], + @mongo = Mongo::Client.new(hosts, :database => db, :password => passwd, :user => uname, - :auth_source => 'admin') + :auth_source => 'admin', + :read => { + :mode => :secondary_preferred + }, + :retry_reads => true, + :retry_writes => true, + :write_concern => { + :w => "majority", + :j => true + } + ) dbs = @mongo.list_databases if dbs.find { |x| x['name'] == db }.nil?