Module: Mongo::ServerSelector
- Extended by:
- ServerSelector
- Included in:
- ServerSelector
- Defined in:
- lib/mongo/server_selector.rb,
lib/mongo/server_selector/nearest.rb,
lib/mongo/server_selector/primary.rb,
lib/mongo/server_selector/secondary.rb,
lib/mongo/server_selector/selectable.rb,
lib/mongo/server_selector/primary_preferred.rb,
lib/mongo/server_selector/secondary_preferred.rb
Overview
Functionality for getting an object able to select a server, given a preference.
Defined Under Namespace
Modules: Selectable Classes: Nearest, Primary, PrimaryPreferred, Secondary, SecondaryPreferred
Constant Summary collapse
- LOCAL_THRESHOLD =
The max latency in seconds between the closest server and other servers considered for selection.
0.015.freeze
- SERVER_SELECTION_TIMEOUT =
How long to block for server selection before throwing an exception.
30.freeze
- SMALLEST_MAX_STALENESS_SECONDS =
The smallest allowed max staleness value, in seconds.
90
- PRIMARY =
Primary read preference.
Options::Redacted.new(mode: :primary).freeze
- PREFERENCES =
Hash lookup for the selector classes based off the symbols
provided in configuration.
{ nearest: Nearest, primary: Primary, primary_preferred: PrimaryPreferred, secondary: Secondary, secondary_preferred: SecondaryPreferred }.freeze
Instance Method Summary collapse
-
#get(preference = {}) ⇒ Object
Create a server selector object.
Instance Method Details
#get(preference = {}) ⇒ Object
Create a server selector object.
72 73 74 75 |
# 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 |