module Mongo::ServerSelector
Functionality for getting an object able to select a server, given a preference.
@since 2.0.0
Constants
- LOCAL_THRESHOLD
The max latency in seconds between the closest server and other servers considered for selection.
@since 2.0.0
- PREFERENCES
Hash lookup for the selector classes based off the symbols
provided in configuration.
@since 2.0.0
- PRIMARY
Primary
read preference.@since 2.1.0
- SERVER_SELECTION_TIMEOUT
How long to block for server selection before throwing an exception.
@since 2.0.0
- SMALLEST_MAX_STALENESS_SECONDS
The smallest allowed max staleness value, in seconds.
@since 2.4.0
Public Instance Methods
get(preference = {})
click to toggle source
Create a server selector object.
@example Get a server selector object for selecting a secondary with
specific tag sets. Mongo::ServerSelector.get(:mode => :secondary, :tag_sets => [{'dc' => 'nyc'}])
@param [ Hash ] preference The server preference.
@since 2.0.0
# File lib/mongo/server_selector.rb, line 72 def get(preference = {}) return preference if PREFERENCES.values.include?(preference.class) PREFERENCES.fetch(preference[:mode] || :primary).new(preference) end