모듈: Mongo::Operation::Timed Private
- 포함 항목:
- OpMsgBase
- 다음에 정의됨:
- lib/ Mongo/operation/shared/timed.rb
개요
이 모듈은 비공개 API의 일부입니다. 이 모듈은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
클라이언트 사이드 작업 시간 초과(CSOT) 사양에 설명된 기본값 시간 초과 동작이 있는 작업의 동작을 정의합니다.
인스턴스 메서드 요약 접기
-
#apply_relevant_timeout_to(사양, 연결) ⇒ 해시
비공개
제한 시간이 활성화되어 있고(현재 컨텍스트에 정의된 대로) 아직 만료되지 않은 경우 사양에 :maxTimeMS를 추가합니다.
-
#with_max_time(연결) ⇒ 해시
비공개
남은 시간 제한(초)을 계산하여 관련 차단 에 양보하는 헬퍼 메서드입니다.
인스턴스 메서드 세부 정보
#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 |