Módulo: Mongo::CursorHost
- Incluido en:
- Mongo::Colección::Vista::Iterable, Base de datos::Vista, Índice::Vista
- Definido en:
- lib/mongo/cursor_host.rb
Overview
Una preocupación compartida es implementar configuraciones y ajustes para entidades que “albergan” (o generan) cursores.
La clase o módulo que incluye 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).
Colapso delresumen de atributos de instancia
-
#cursor ⇒ nil | Cursor
solo lectura
privada
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 que utilizará este objeto.
Colapso del resumen del método de instancia
-
#validate_timeout_mode!(options, forbid: []) ⇒ Object
privada
Asegúrese de que el modo de tiempo de espera sea apropiado para las demás opciones que se han proporcionado.
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 ⇒:tiempo_de_vida_del_cursor |:iteración (solo lectura)
Devuelve el modo de tiempo de espera que utilizará 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úrese de que el modo de tiempo de espera sea apropiado para las demás opciones que se han proporcionado.
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 |clave| propagar ArgumentError, "#{key} no se permite aquí" Si .key?(clave) end tipo_de_cursor = [:tipo_de_cursor] timeout_mode = [:timeout_mode] Si tiempo de espera_ms # "Los cursores adaptables solo admiten el valor de ITERACIÓN para el Opción timeoutMode. Este es el valor predeterminado y los controladores DEBEN # error si la opción está establecida en CURSOR_LIFETIME." Si tipo_de_cursor timeout_mode ||= :iteración Si timeout_mode == :duración del cursor propagar ArgumentError, 'Los cursores adaptables solo admiten `timeout_mode::iteration` ' end # "Los controladores DEBEN generar un error si la opción [maxAwaitTimeMS] está configurada, # timeoutMS se establece en un valor distinto de cero y maxAwaitTimeMS es # mayor o igual que timeoutMS." tiempo máximo de espera ms = [:tiempo máximo de espera ms] || 0 Si tipo_de_cursor == :tailable_await && tiempo máximo de espera ms >= tiempo de espera_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 ||= :duración del cursor end elsif timeout_mode # "Los controladores DEBEN generar un error si timeoutMode está configurado y timeoutMS no". propagar ArgumentError, ':timeout_ms debe configurarse si:timeout_mode está configurado' end Si timeout_mode == :iteración && respond_to?(:¿escribir?) && ¿escribir? propagar ArgumentError, 'timeout_mode=:iteration no es compatible con canales de agregación con $out o $merge ' end # configúrelo como una variable de instancia, en lugar de actualizar las opciones, # porque si el tipo de cursor cambia (por ejemplo, a través de #configure()), el nuevo # La instancia de vista debe poder seleccionar un timeout_mode predeterminado diferente # si no se configuró timeout_mode inicialmente. @timeout_mode = timeout_mode end |