Classe: Mongo::CsotTimeoutHolder Privado
- Herda:
-
Objeto
- Objeto
- Mongo::CsotTimeoutHolder
- Definido em:
- lib/mongo/csot_timeout_holder.rb
Visão geral
Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.
Essa classe armazena o tempo limite da operação e fornece os métodos assistente correspondentes.
Subclasses conhecidas diretas
Recolhimento do Resumo do atributo de instância
- #prazo ➤ Objeto Somente leitura privado
- #operation_timeouts ➤ Objeto Somente leitura privado
- #timeout_sec ➤ Objeto Somente leitura privado
Recolhimento do Resumo do método de instância
-
#check_timeout! ➤ Objeto
privado
Verifique se o tempo limite da operação expirou e gera um erro apropriado em caso afirmativo.
-
#csot? ⇒ true | false
privado
Se o CSOT está habilitado para a operação.
-
#initialize(sessão: nil, operation_timeouts: {}) ➤ CsotTimeoutHolder
construtor
privado
Uma nova instância do CsotTimeoutHolder.
-
#remaining_timeout_ms ➤ Inteiro | nada
privado
Retorna os milissegundos restantes do tempo limite definido para a operação; se nenhum tempo limite estiver definido ou o tempo limite for 0 (significa ilimitado), retornará nulo.
- #remaining_timeout_ms! ➤ Objeto privado
-
#remaining_timeout_sec ➤ Flutuante | nada
privado
Retorna os segundos restantes do tempo limite definido para a operação; se nenhum tempo limite estiver definido ou o tempo limite for 0 (significa ilimitado), retornará nulo.
- #remaining_timeout_sec! ➤ Objeto privado
-
#tempo limite? ➤ verdadeiro | false
privado
Retorna falso se CSOT não estiver habilitado ou se CSOT estiver definido como 0 (significa ilimitado), caso contrário, retorna verdadeiro.
-
#timeout_expired? ➤ verdadeiro | false
privado
Se o tempo limite da operação expirou.
Detalhes do construtor
#initialize(sessão: nil, operation_timeouts: {}) ➤ CsotTimeoutHolder
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 uma nova instância de CsotTimeoutHolder.
22 23 24 25 26 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 22 def inicializar(sessão: nada, operation_timeouts: {}) @deadline = calculate_deadline(operation_timeouts, session) @operation_timeouts = operation_timeouts @timeout_sec = (@deadline - Utilidades.monotonic_time se @deadline) end |
Detalhes do atributo da instância
#prazo ➤ Objeto (somente leitura)
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.
28 29 30 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 28 def prazo @deadline end |
#operation_timeouts ➤ Objeto (somente leitura)
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.
28 29 30 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 28 def operation_timeouts @operation_timeouts end |
#timeout_sec ➤ Objeto (somente leitura)
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.
28 29 30 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 28 def timeout_sec @timeout_sec end |
Detalhes do método de instância
#check_timeout! ➤ Objeto
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.
Verifique se o tempo limite da operação expirou e gera um erro apropriado em caso afirmativo.
84 85 86 87 88 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 84 def check_timeout! Método a menos que timeout_expired? aumentar Erro::Erro de tempo limite, "A operação levou mais de #{timeout_sec} segundos" end |
#csot? ⇒ true | false
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 se o CSOT está ativado para a operação.
31 32 33 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 31 def csot? !prazo.nada? end |
#remaining_timeout_ms ➤ Inteiro | nada
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 os milissegundos restantes do tempo limite definido para a operação; se nenhum tempo limite estiver definido ou o tempo limite for 0 (significa ilimitado), retornará nulo.
58 59 60 61 62 63 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 58 def remaining_timeout_ms Segundos = remaining_timeout_sec Método nada se Segundos.nada? (Segundos * 1_000).to_i end |
#remaining_timeout_ms! ➤ Objeto
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.
65 66 67 68 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 65 def remaining_timeout_ms! check_timeout! remaining_timeout_ms end |
#remaining_timeout_sec ➤ Flutuante | nada
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 os segundos restantes do tempo limite definido para a operação; se nenhum tempo limite estiver definido ou o tempo limite for 0 (significa ilimitado), retornará nulo.
44 45 46 47 48 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 44 def remaining_timeout_sec Método nada a menos que tempo-limite? prazo - Utilidades.monotonic_time end |
#remaining_timeout_sec! ➤ Objeto
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.
50 51 52 53 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 50 def remaining_timeout_sec! check_timeout! remaining_timeout_sec end |
#tempo limite? ➤ verdadeiro | false
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 falso se CSOT não estiver habilitado ou se CSOT estiver definido como 0 (significa ilimitado), caso contrário, retorna verdadeiro.
37 38 39 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 37 def tempo-limite? ![ nada, 0 ].incluir?(@deadline) end |
#timeout_expired? ➤ verdadeiro | false
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 se o tempo limite da operação expirou. Se nenhum tempo limite estiver definido, este método retornará falso.
72 73 74 75 76 77 78 |
# File 'lib/mongo/csot_timeout_holder.rb', linha 72 def timeout_expired? se tempo-limite? Utilidades.monotonic_time >= prazo mais false end end |