Módulo: Mongo::CursorHost
- Incluido en:
- Mongo::colección::View::Iterable, base de datos::View, índice::View
- Definido en:
- lib/mongo/cursor_host.rb
Overview
Preocupación compartida al implementar configuraciones y ajustes para entidades que “hostean” (o generan) cursores.
La clase o módulo que incluya esta preocupación debe implementar:
* timeout_ms -- this must return either the operation level timeout_ms
(if set) or an inherited timeout_ms from a hierarchically higher
level (if any).
Resumen de atributos de la instancia colapsar
-
#cursor ⇒ nil | Cursor
Solo lectura
privado
Devuelve el cursor asociado a esta vista, si lo hay.
-
#modo_de_tiempo_de_espera ⇒:tiempo_de_vida_del_cursor |:iteración
Solo lectura
El modo de tiempo de espera a utilizar por este objeto.
Resumen del método de instancia colapsar
-
#validate_timeout_mode!(options, forbid: []) ⇒ Object
privado
Asegúrate de que el modo de tiempo de espera sea adecuado para otras opciones que se hayan dado.
Detalles de los atributos de instancia
#cursor ⇒ nil | Cursor (readonly)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el cursor asociado a esta vista, si lo hay.
17 18 19 |
# Archivo 'lib/mongo/cursor_host.rb', línea 17 def cursor @cursor end |
#timeout_mode ⇒ :cursor_lifetime | :iteration (solo lectura)
Devuelve el modo de tiempo de espera que se utilizará en este objeto.
21 22 23 |
# Archivo 'lib/mongo/cursor_host.rb', línea 21 def timeout_mode @timeout_mode end |
Detalles del método de instancia
#validate_timeout_mode!(options, forbid: []) ⇒ Object
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Asegúrate de que el modo de tiempo de espera sea adecuado para otras opciones que se hayan dado.
rubocop:deshabilitar métricas
35 36 37 38 39 40 41 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 70 71 72 73 74 75 76 77 78 79 |
# Archivo 'lib/mongo/cursor_host.rb', línea 35 def validate_timeout_mode!(, forbid: []) forbid.cada hacer |llave| propagar ArgumentError, "#{key} no se permite aquí" si .key?(llave) end cursor_type = [tipo_de_cursor] timeout_mode = [:timeout_mode] si timeout_ms # "Los cursores con seguimiento solo admiten el valor ITERATION para la # opción timeoutMode. Este es el valor por defecto y los drivers DEBEN # error si la opción está configurada en CURSOR_LIFETIME. si cursor_type timeout_mode ||= :iteration si timeout_mode == vida_útil_del_cursor propagar ArgumentError, 'los cursores con seguimiento solo permiten `timeout_mode: :iteration`' end # \"Los controladores DEBEN dar error si se establece la opción [maxAwaitTimeMS],\" # timeoutMS se establece en un valor distinto de cero y maxAwaitTimeMS es # mayor o igual que timeoutMS." max_await_time_ms = [; tiempo_máximo_espera_ms] || 0 si cursor_type == tailable_await && max_await_time_ms >= timeout_ms propagar ArgumentError, ':max_await_time_ms no debe ser >=:timeout_ms ' end else # "Para cursores no rastreables, el valor predeterminado de timeoutMode # es CURSOR_LIFETIME." timeout_mode ||= vida_útil_del_cursor end elsif timeout_mode # "Los controladores DEBEN arrojar error si timeoutMode está configurado y timeoutMS no lo está." propagar ArgumentError, ':timeout_ms debe establecerse si :timeout_mode está activado' end si timeout_mode == :iteration && respond_to?(:¿escribir?) && guardar? propagar ArgumentError, 'timeout_mode=:iteration no está disponible para pipelines de agregación con $out o $merge' end # configurarlo como una variable de instancia, en lugar de actualizar las opciones, # porque si el tipo de cursor cambia (por ejemplo, mediante #configure()), el nuevo # La instancia de vista debe poder seleccionar un timeout_mode por defecto diferente # si no se configuró timeout_mode inicialmente. @timeout_mode = timeout_mode end |