모듈: Mongo::Operation::Timed Private

포함 항목:
OpMsgBase
다음에 정의됨:
lib/ Mongo/operation/shared/timed.rb

개요

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

클라이언트 사이드 작업 시간 초과(CSOT) 사양에 설명된 기본값 시간 초과 동작이 있는 작업의 동작을 정의합니다.

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#apply_relevant_timeout_to(사양, 연결) ⇒ 해시

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

제한 시간이 활성화되어 있고(현재 컨텍스트에 정의된 대로) 아직 만료되지 않은 경우 사양에 :maxTimeMS를 추가합니다.

매개변수:

  • 사양 (해시)

    수정할 사양

  • 연결 (연결)

    작업을 실행하는 데 사용할 연결

반환합니다:

  • (해시)

    사양

[소스 보기]

22
23
24
25
26
27
28
29
# 파일 'lib/ Mongo/operation/shared/timed.rb', 줄 22

def apply_relevant_timeout_to(사양, 연결)
  with_max_time(연결) do |max_time_sec|
    반환 사양 만약 max_time_sec.nil?
    반환 사양 만약 연결.description.mongocryptd?

    사양. { 사양[:maxTimeMS] = (max_time_sec * 1_000).to_i }
  end
end

#with_max_time(연결) ⇒ 해시

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

남은 시간 제한(초)을 계산하여 관련 차단 에 양보하는 헬퍼 메서드입니다. 시간 초과가 없으면 nil을 반환합니다. 제한 시간이 만료되면 Mongo::Error::TimeoutError를 발생시킵니다.

매개변수:

  • 연결 (연결)

    작업을 실행하는 데 사용할 연결

반환합니다:

  • (해시)

    차단 에 양보한 결과(해시여야 함)

[소스 보기]

40
41
42
43
44
45
46
47
48
49
# 파일 'lib/ Mongo/operation/shared/timed.rb', 줄 40

def with_max_time(연결)
  만약 컨텍스트&.시간 초과?
    max_time_sec = 컨텍스트.나머지_시간 초과_초 - 연결.서버.minimum_round_trip_time
    올리다 mongo::오류::시간 초과 오류 만약 max_time_sec <= 0

    yield max_time_sec
  other
    yield nil
  end
end