ServerSelector — Documentation by YARD 0.9.37 (original) (raw)

Module: Mongo::ServerSelector

Extended by:

ServerSelector

Included in:

ServerSelector

Defined in:

lib/mongo/server_selector.rb,
lib/mongo/server_selector/base.rb,
lib/mongo/server_selector/nearest.rb,
lib/mongo/server_selector/primary.rb,
lib/mongo/server_selector/secondary.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

Classes: Base, Nearest, Primary, PrimaryPreferred, Secondary, SecondaryPreferred

Constant Summarycollapse

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 =

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 Summarycollapse

Instance Method Details

#get(preference = {}) ⇒ Object

Create a server selector object.

| 75 76 77 78 79 | # File 'lib/mongo/server_selector.rb', line 75 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 | | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#primary ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

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.

| 87 88 89 | # File 'lib/mongo/server_selector.rb', line 87 def primary @primary ||= get(mode: :primary) end | | -------- | ---------------------------------------------------------------------------------------------------- |