Clase: Mongo::Cluster::PeriodicExecutor Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Hilo de fondo
Definido en:
lib/mongo/cluster/ejecutor_periódico.rb

Overview

Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Un administrador que llama a #execute en sus ejecutores a intervalos regulares.

Desde:

  • 2.5.0

Colapso delresumen constante

FRECUENCIA =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

El intervalo de tiempo predeterminado para que se ejecute el ejecutor periódico.

Desde:

  • 2.5.0

5

Constantes incluidas desde Loggable

Registrable::PREFIX

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Métodos incluidos desde BackgroundThread

#corre!, #corre?, #para!

Métodos incluidos en Loggable

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

Detalles del constructor

#inicializar(ejecutores, opciones = {}) ⇒ PeriodicExecutor

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Crear un ejecutor periódico.

Ejemplos:

Crear un PeriodicExecutor.

Mongo::Cluster::PeriodicExecutor.new([reaper, reaper2])

Parámetros:

  • albaceas (Matriz<Object>)

    Los ejecutores. Cada uno debe responder a #execute y #flush.

  • opciones (Hash) (predeterminado: {})

    Las opciones.

Opciones Hash(opciones):

  • :logger (Registrador)

    Un registrador personalizado para utilizar.

Desde:

  • 2.5.0



47
48
49
50
51
52
# Archivo 'lib/mongo/cluster/periodic_executor.rb', línea 47

def inicializar(albaceas, opciones = {})
  @hilo = nulo
  @ejecutores = albaceas
  @stop_semaphore = Semáforo.Nuevo
  @opciones = opciones
end

Detalles de los atributos de instancia

#opcionesObjeto (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.5.0



54
55
56
# Archivo 'lib/mongo/cluster/periodic_executor.rb', línea 54

def opciones
  @opciones
end

Detalles del método de instancia

#do_workobjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.5.0



58
59
60
61
# Archivo 'lib/mongo/cluster/periodic_executor.rb', línea 58

def hacer_trabajo
  ejecutar
  @stop_semaphore.esperar(FRECUENCIA)
end

#ejecutarObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Activa una llamada de ejecución en cada segador.

Ejemplos:

Activar todos los segadores.

periodic_executor.execute

Desde:

  • 2.5.0



86
87
88
89
# Archivo 'lib/mongo/cluster/periodic_executor.rb', línea 86

def ejecutar
  @ejecutores.cada(Y:ejecutar)
  true
end

#flushObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Ejecutar todas las operaciones pendientes.

Ejemplos:

Ejecutar todas las operaciones pendientes.

periodic_executor.flush

Desde:

  • 2.5.0



99
100
101
102
# Archivo 'lib/mongo/cluster/periodic_executor.rb', línea 99

def enjuagar
  @ejecutores.cada(Y:enjuagar)
  true
end

#pre_stopObject

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.5.0



63
64
65
# Archivo 'lib/mongo/cluster/periodic_executor.rb', línea 63

def pre_stop
  @stop_semaphore.señal
end

#stop(final = falso) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.5.0



67
68
69
70
71
72
73
74
75
76
# Archivo 'lib/mongo/cluster/periodic_executor.rb', línea 67

def parada(final = false)
  Super

  begin
    enjuagar
  rescate
  end

  true
end