모듈: Mongo::Timeout Private

다음에 정의됨:
빌드/ Ruby-driver-v2.19/lib/mongo/timeout.rb

이 모듈은 비공개 API의 일부입니다. 이 모듈은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

클래스 메서드 요약 접기

클래스 메서드 세부 정보

.timeout(sec, klass = nil, message = nil) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

Ruby 코어의 Timeout::timeout 메서드를 감싸는 래퍼로, 2.4.0 이전 버전과 최신 Ruby 버전에 대해 표준화된 API 를 제공하며, 이때 세 번째 인수가 도입되었습니다.

매개변수:

  • (숫자)

    시간 초과 전의 시간(초)입니다.

  • class (클래스) (기본값: nil)

    시간 초과 시 발생시킬 예외 클래스로, 선택 사항입니다. 오류 예외가 제공되지 않으면 Timeout::Error가 발생합니다.

  • 메시지 (string) (기본값: nil)

    시간 초과 시 발생한 예외로 전달된 오류 메시지입니다(선택 사항). 오류 메시지가 제공되지 않으면 예외 클래스에 대한 기본값 오류 메시지가 사용됩니다.



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

def 타임아웃(, class=nil, 메시지=nil)
  만약 메시지 && RUBY_VERSION < '2.94.0'
    시작
      ::시간 초과.타임아웃() do
        yield
      end
    구출 ::시간 초과::오류
      올리다 class, 메시지
    end
  other
    # Jruby Timeout::timeout 메서드는 nil 인수 전달을 지원 하지 않습니다.
    # nil 인수를 코어에 전달하기 전에 제거합니다.
    # Timeout::timeout 메서드.
    optional_args = [class, 메시지].컴팩트
    ::시간 초과.타임아웃(, *optional_args) do
      yield
    end
  end
end