Módulo: Mongo::Operação::Timed privado
- Incluído em:
- OpMsgBase
- Definido em:
- lib/mongo/operation/shared/timed.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.
Define o comportamento das operações que têm o comportamento de tempo limite padrão descrito pela especificação de tempos limite de operação (CSOT) do lado do cliente .
Recolhimento do Resumo do método de instância
-
#apply_relevante_timeouts_to(spec, connection) ➤ Hash
privado
Se um tempo limite estiver ativo (conforme definido pelo contexto atual) e ainda não tiver expirado, adicione :maxTimeMS à especificação.
-
#with_max_time(connection) ➤ Hash
privado
Um método assistente que calcula o tempo limite restante (em segundos) e o produz para o bloco associado.
Detalhes do método de instância
#apply_relevante_timeouts_to(spec, connection) ➤ Hash
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.
Se um tempo limite estiver ativo (conforme definido pelo contexto atual) e ainda não tiver expirado, adicione :maxTimeMS à especificação.
22 23 24 25 26 27 28 29 |
# Arquivo 'lib/mongo/operation/shared/timed.rb', linha 22 def apply_relevante_timeouts_to(especificações, Conexão) with_max_time(Conexão) fazer |max_time_sec| Método especificações se max_time_sec.nada? Método especificações se Conexão.Descrição.mongocryptd? especificações.toque { especificações[:maxTimeMS] = (max_time_sec * 1_000).to_i } end end |
#with_max_time(connection) ➤ Hash
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.
Um método assistente que calcula o tempo limite restante (em segundos) e o produz para o bloco associado. Se nenhum tempo limite estiver presente, produz zero. Se o tempo limite tiver expirado, gera Mongo::Error::TimeoutError.
40 41 42 43 44 45 46 47 48 49 |
# Arquivo 'lib/mongo/operation/shared/timed.rb', linha 40 def with_max_time(Conexão) se Contexto&.tempo-limite? max_time_sec = Contexto.remaining_timeout_sec - Conexão.Servidor.minimum_round_trip_time aumentar mongo::Erro::Erro de tempo limite se max_time_sec <= 0 rendimento max_time_sec mais rendimento nada end end |