Class: Moped::ReadPreference::SecondaryPreferred

Inherits:
Object
  • Object
show all
Includes:
Selectable
Defined in:
lib/moped/read_preference/secondary_preferred.rb

Overview

Encapsulates behaviour around a secondary read preference.

Since:

  • 2.0.0

Instance Attribute Summary

Attributes included from Selectable

#tags

Instance Method Summary collapse

Methods included from Selectable

#initialize, #query_options

Instance Method Details

#nameSymbol

Get the name for the read preference on the server side.

Examples:

Get the name of the read preference.

secondary_preferred.name

Returns:

  • (Symbol)

    :secondaryPreferred.

Since:

  • 2.0.0



19
20
21
# File 'lib/moped/read_preference/secondary_preferred.rb', line 19

def name
  :secondaryPreferred
end

#with_node(cluster, &block) ⇒ Object

Note:

If tag sets are provided then secondary selection will need to match the provided tags.

Select a secondary node from the cluster. If no secondary is available then use a primary. If no primary is found then an exception will be raised.

Examples:

Read a secondary or primary node from the cluster.

preference.with_node(cluster) do |node|
  node.command(ismaster: 1)
end

Parameters:

  • cluster (Cluster)

    The cluster of nodes to select from.

Returns:

  • (Object)

    The result of the block.

Raises:

Since:

  • 2.0.0



42
43
44
45
46
47
48
49
50
# File 'lib/moped/read_preference/secondary_preferred.rb', line 42

def with_node(cluster, &block)
  with_retry(cluster) do
    begin
      cluster.with_secondary(&block)
    rescue Errors::ConnectionFailure
      cluster.with_primary(&block)
    end
  end
end