Módulo: Mongo::Timeout Private

Definido em:
build/ruby-driver-v2.19/lib/mongo/timeout.rb

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.

Recolhimento do Resumo do método de classe

Detalhes do método de classe

.timeout(sec, klass = nil, message = nil) ➤ 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.

Um wrapper em torno do método Timeout::timeout do Ruby core que fornece uma API padronizada para versões do Ruby mais antigas e mais recentes que 2.4.0, que foi quando o terceiro argumento foi introduzido.

Parâmetros:

  • seg (Numérico)

    O número de segundos antes do tempo limite.

  • classe (Classe) (padrão para: nil)

    A classe de exceção a ser criada em caso de tempo limite, opcional. Quando nenhuma exceção de erro é fornecida, Timeout::Error é gerado.

  • mensagem (string) (padrão para: nil)

    A mensagem de erro passada para a exceção gerada no tempo limite, opcional. Quando nenhuma mensagem de erro é fornecida, a mensagem de erro padrão para a classe de exceção é usada.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'build/ruby-driver-v2.19/lib/mongo/timeout.rb', linha 33

def timeout(seg, classe=nada, mensagem=nada)
  se mensagem && RBY_VERSION < '2.94.0'
    começar
      ::Tempo-limite.timeout(seg) fazer
        rendimento
      end
    salvar ::Tempo-limite::Erro
      aumentar classe, mensagem
    end
  mais
    # O método JRuby Timeout::timeout não suporta a passagem de argumentos nulos.
    # Remova os argumentos nulos antes de passá-los para o núcleo
    # Timeout::timeout method.
    opcional_args = [classe, mensagem].compactar
    ::Tempo-limite.timeout(seg, *opcional_args) fazer
      rendimento
    end
  end
end