Módulo: Mongo::Operation::Executable Privado
- Incluye:
- ResponseHandling
- Incluido en:
- Base de mensajes de operación
- Definido en:
- lib/mongo/operation/shared/executable.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.
Resumen de atributos de la instancia colapsar
-
#context ⇒ Operation::Context | nil
privado
El contexto de operación utilizado para ejecutar esta operación.
Resumen del método de instancia colapsar
- #do_execute(connection, context, options = {}) ⇒ objeto privado
- #ejecutar(conexión, contexto:, opciones: {}) ⇒ Objeto privado
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(connection, context, options = {}) ⇒ 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 do_execute(Conexión, context, = {}) # Guarda el contexto en la instancia, para evitar tener que pasarlo como un # parámetro para cada método individual. Existen 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 adelante, puede ser # es razonable refactorizar las cosas para que esta referencia guardada se use en su lugar. @contexto = context sesión&.materialize_if_needed desanclar_posiblemente(sesión, Conexión) hacer add_error_labels(Conexión, context) hacer check_for_network_error hacer add_server_diagnostics(Conexión) hacer get_result(Conexión, context, ).tocar hacer |Resultado| si sesión si sesión.en_transacción? && Conexión.Descripción.load_balancer? entonces si sesión.pinned_connection_global_id a menos que sesión.pinned_connection_global_id == Conexión.global_id propagar( Error::InternalDriverError, "Se esperaba que la operación utilizara la conexión #{session.pinned_connection_global_id} pero utilizó #{connection.global_id}" ) end else sesión.pin_a_conexión(Conexión.global_id) Conexión.alfiler end end si sesión.¿instantánea? && !sesión. sesión. = Resultado. end end si Resultado.has_cursor_id? && Conexión.Descripción.load_balancer? entonces si Resultado.cursor_id == 0 Conexión.unpin else Conexión.alfiler end end process_result(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.¿habilitado? a menos que Conexión.is_a?(Mongo::Server::Conexión) propagar Error::LintError, "El argumento de conexión es del tipo incorrecto: #{connection}" end end do_execute(Conexión, context, ).tocar hacer |Resultado| validate_result(Resultado, Conexión, context) end end |