Clase: Mongo::Server::RoundTripTimeCalculator Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Server::RoundTripTimeCalculator
- Definido en:
- lib/mongo/servidor/round_trip_time_calculator.rb
Overview
Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.
Resumen de atributos de la instancia colapsar
- #average_round_trip_time ⇒ Objeto Solo lectura privado
- #last_round_trip_time ⇒ Objeto Solo lectura privado
- #minimum_round_trip_time ⇒ Object Solo lectura privado
Resumen del método de instancia colapsar
-
#initialize ⇒ RoundTripTimeCalculator
constructor
privado
Una nueva instancia de RoundTripTimeCalculator.
- #measure ⇒ objeto privado
- #update_average_round_trip_time ⇒ Objeto privado
- #update_minimum_round_trip_time ⇒ objeto privado
Detalles del Constructor
#inicializar ⇒ CalculadoraDeTiempoDeIdaYVuelta
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve una nueva instancia de RoundTripTimeCalculator.
32 33 34 35 36 37 38 |
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 32 def inicializar @last_round_trip_time = nulo @average_round_trip_time = nulo @minimum_round_trip_time = 0 @lock = Mutex (exclusión mutua).Nuevo @rtts = [] end |
Detalles de atributo de instancias
#average_round_trip_time ⇒ Object (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
40 41 42 |
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 40 def average_round_trip_time @average_round_trip_time end |
#last_round_trip_time ⇒ Object (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
40 41 42 |
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 40 def last_round_trip_time @last_round_trip_time end |
#minimum_round_trip_time ⇒ Object (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
40 41 42 |
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 40 def minimum_round_trip_time @minimum_round_trip_time end |
Detalles del método de instancia
#measure ⇒ objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 42 def medir Inicio = Utils.monotonic_time begin rv = rendimiento rescate Error::SocketError, Error::SocketTimeoutError # Si encontramos un error de red, el viaje de ida y vuelta no es # completo y, por tanto, el RTT para ello no tiene sentido. propagar rescate Error, Error::AuthError => e # Para otros errores, RTT es válido. end last_rtt = Utils.monotonic_time - Inicio # Si el saludo falla, necesitamos devolver el tiempo de ida y vuelta más reciente # porque se utiliza en el evento de latido fallido de SDAM, # pero no debemos actualizar el tiempo de ida y vuelta registrado en el servidor. a menos que e @last_round_trip_time = last_rtt @lock.sincronizar hacer update_average_round_trip_time update_minimum_round_trip_time end end propagar e si e rv end |
#actualizar_tiempo_promedio_de_viaje_redondo ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
71 72 73 74 75 76 77 |
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 71 def update_average_round_trip_time @average_round_trip_time = si average_round_trip_time (RTT_WEIGHT_FACTOR * last_round_trip_time) + ((1 - RTT_WEIGHT_FACTOR) * average_round_trip_time) else last_round_trip_time end end |
#update_minimum_round_trip_time ⇒ objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
79 80 81 82 83 84 85 |
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 79 def update_minimum_round_trip_time @rtts.push(last_round_trip_time) a menos que last_round_trip_time.nil? @minimum_round_trip_time = 0 y return si @rtts.Tamaño < MIN_SAMPLES @rtts.turno si @rtts.Tamaño > RTT_MUESTRAS_PARA_MÍNIMO @minimum_round_trip_time = @rtts.compact.min end |