Módulo: Mongo::Operation::Executable Private
- Incluye:
- ResponseHandling
- Incluido en:
- Base de mensajes de operación
- Definido en:
- lib/mongo/operación/compartido/ejecutable.rb
Overview
Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Comportamiento ejecutable compartido de operaciones.
Colapso delresumen de atributos de instancia
-
#context ⇒ Operation::Context | nil
privada
El contexto de operación utilizado para ejecutar esta operación.
Colapso del resumen del método de instancia
- #do_execute(connection, context, options = {}) ⇒ objeto privada
- #ejecutar(conexión, contexto:, opciones: {}) ⇒ Objeto privada
Detalles de los atributos de instancia
#context ⇒ Operation::Context | nil
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 contexto de operación utilizado para ejecutar esta operación.
33 34 35 |
# Archivo 'lib/mongo/operation/shared/executable.rb', línea 33 def context @contexto end |
Detalles del método de instancia
#do_execute(conexión, contexto, opciones = {}) ⇒ 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.
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 80 81 82 83 84 85 86 |
# Archivo 'lib/mongo/operation/shared/executable.rb', línea 35 def hacer_ejecutar(conexión, context, = {}) # Guarda el contexto en la instancia, para evitar tener que pasarlo como un # parámetro para cada método. Hay muchos métodos heredados que... # todavía lo aceptamos como parámetro, que se deja como está por ahora. # Minimizar el impacto de este cambio. En el futuro, podría ser... # Es razonable refactorizar las cosas para que se utilice esta referencia guardada. @contexto = context sesión&.materializarse_si_es_necesario desfijar_tal vez(sesión, conexión) hacer agregar etiquetas de error(conexión, context) hacer comprobar_si_hay_error_de_red hacer agregar_diagnósticos_del_servidor(conexión) hacer get_result(conexión, context, ).grifo hacer |resultado| Si sesión Si sesión.¿en_transacción? && conexión.Descripción.¿equilibrador de carga? entonces Si sesión.pinned_connection_global_id a no ser que sesión.pinned_connection_global_id == conexión.id_global propagar( Error::InternalDriverError, "Seesperaba que la operación utilizara la conexión n.°{session.pinned_connection_global_id }, pero utilizó laconexiónn.° { connection. global_id }" ) end else sesión.pin_a_conexión(conexión.id_global) conexión.perno end end Si sesión.¿instantánea? && !sesión. sesión. = resultado. end end Si resultado.has_cursor_id? && conexión.Descripción.¿equilibrador de carga? entonces Si resultado.cursor_id == 0 conexión.unpin else conexión.perno end end resultado del proceso(resultado, conexión) end end end end end end |
#ejecutar(conexión, contexto:, opciones: {}) ⇒ 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.
88 89 90 91 92 93 94 95 96 97 98 |
# Archivo 'lib/mongo/operation/shared/executable.rb', línea 88 def ejecutar(conexión, context:, opciones: {}) Si Lint.¿activado? a no ser que conexión.is_a?(Mongo::Servidor::Conexión) propagar Error::LintError, "Elargumento deconexión es detipo incorrecto: #{ connection }" end end hacer_ejecutar(conexión, context, ).grifo hacer |resultado| validate_result(resultado, conexión, context) end end |