Módulo: Mongo::Operação::Executable Private
- Inclui:
- ResponseHandling
- Incluído em:
- OpMsgBase
- Definido em:
- lib/mongo/operation/shared/executable.rb
Visão geral
Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.
Comportamento executável compartilhado de operações.
Recolhimento do Resumo do atributo de instância
-
#context ⇒ Operation::Context | nil
privado
O contexto da operação usado para executar esta operação.
Recolhimento do Resumo do método de instância
- #do_execute(connection, context, options = {}) ➤ Object privado
- #execute(connection, context:, options: {}) ➤ Object privado
Detalhes do atributo da instância
#context ⇒ Operation::Context | nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o contexto da operação usado para executar esta operação.
33 34 35 |
# Arquivo 'lib/mongo/operation/shared/executable.rb', linha 33 def Contexto @context end |
Detalhes do método de instância
#do_execute(connection, context, options = {}) ➤ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no 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 |
# Arquivo 'lib/mongo/operation/shared/executable.rb', linha 35 def do_execute(Conexão, Contexto, = {}) # Salve o contexto na instância, para evitar ter que passá-lo como um # parâmetro para cada método. Existem muitos métodos legado que # ainda o aceitam como um parâmetro, que são deixados como estão por enquanto para # minimizar o impacto desta alteração. No futuro, pode ser # razoável refatorar as coisas para que essa referência salva seja usada. @context = Contexto session&.materialize_if_needed unpin_ maybe(session, Conexão) fazer add_error_labels(Conexão, Contexto) fazer check_for_network_error fazer add_server_diagnóstico(Conexão) fazer get_result(Conexão, Contexto, ).toque fazer |Resultado| se session se session.in_transaction? && Conexão.Descrição.load_balancer? então se session.pinned_connection_global_id a menos que session.pinned_connection_global_id == Conexão.global_id aumentar( Erro::InternalDriverError, "A operação esperada para usar a conexão #{session.pinned_connection_global_id} mas usou #{connection.global_id}" ) end mais session.pin_to_connection(Conexão.global_id) Conexão.pin end end se session.snapshot? && !session. session. = Resultado. end end se Resultado.has_cursor_id? && Conexão.Descrição.load_balancer? então se Resultado.cursor_id == 0 Conexão.desafixar mais Conexão.pin end end process_result(Resultado, Conexão) end end end end end end |
#execute(connection, context:, options: {}) ➤ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
88 89 90 91 92 93 94 95 96 97 98 |
# Arquivo 'lib/mongo/operation/shared/executable.rb', linha 88 def executar, executar(Conexão, contexto:, opções: {}) se Lint.habilitado? a menos que Conexão.is_a?(mongo::Servidor::Conexão) aumentar Erro::LintError, "O argumento de conexão é do tipo errado: #{connection}" end end do_execute(Conexão, Contexto, ).toque fazer |Resultado| validate_result(Resultado, Conexão, Contexto) end end |