Class: Mongo::Cluster::SocketReaper Private

Inherits:
Object
  • Object
show all
Defined in:
lib/mongo/cluster/reapers/socket_reaper.rb

Overview

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

A manager that calls a method on each of a cluster’s pools to close idle

sockets.

Since:

  • 2.5.0

Instance Method Summary collapse

Constructor Details

#initialize(cluster) ⇒ SocketReaper

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.

Initialize the SocketReaper object.

Examples:

Initialize the socket reaper.

SocketReaper.new(cluster)

Parameters:

  • cluster (Mongo::Cluster)

    The cluster whose pools’ idle sockets need to be reaped at regular intervals.

Since:

  • 2.5.0



39
40
41
# File 'lib/mongo/cluster/reapers/socket_reaper.rb', line 39

def initialize(cluster)
  @cluster = cluster
end

Instance Method Details

#executeObject

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.

Execute the operation to close the pool’s idle sockets.

Examples:

Close the idle sockets in each of the cluster’s pools.

socket_reaper.execute

Since:

  • 2.5.0



49
50
51
52
53
54
# File 'lib/mongo/cluster/reapers/socket_reaper.rb', line 49

def execute
  @cluster.servers.each do |server|
    server.pool_internal&.close_idle_sockets
  end
  true
end

#flushObject

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.

When the socket reaper is garbage-collected, there’s no need to close

idle sockets; sockets will be closed anyway when the pools are
garbage collected.

Since:

  • 2.5.0



61
62
# File 'lib/mongo/cluster/reapers/socket_reaper.rb', line 61

def flush
end