# File lib/mongo/server_selector.rb, line 84 def primary @primary ||= get(mode: :primary) end
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
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) Mongo::Lint.validate_underscore_read_preference(preference) PREFERENCES.fetch((preference[:mode] || :primary).to_sym).new(preference) end
Returns the primary server selector.
A call to this method is equivalent to `get(mode: :primary)`, except the resulting server selector object is cached and not recreated each time.
@api private