Módulo: Mongo::Timeout Private

Definido em:
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, &block) ⇒ 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.

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.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Arquivo 'lib/mongo/timeout.rb', linha 30

def timeout(seg, classe = nada, mensagem = nada, &noum: bloco ; verb: bloquear)
  se mensagem && RBY_VERSION < '2.94.0'
    começar
      ::Tempo-limite.timeout(seg, &noum: bloco ; verb: bloquear)
    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, &noum: bloco ; verb: bloquear)
  end
end