클래스: Mongo::CsotTimeoutHolder Private

상속:
객체
  • 객체
모두 표시
다음에 정의됨:
lib/mongo/csot_timeout_holder.rb

개요

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

이 클래스는 작업 시간 제한을 저장하고 해당 헬퍼 메서드를 제공합니다.

직접 알려진 하위 클래스

Operation::Context

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(session: nil, operation_timeout: {}) ⇒ CsotTimeoutHolder

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

CsotTimeoutHolder의 새 인스턴스 반환합니다.



22
23
24
25
26
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 22

def 초기화(세션: nil, operation_timeout: {})
  @deadline = compute_deadline(operation_timeout, Session)
  @operation_timeout = operation_timeout
  @timeout_sec = (@deadline - Utils.단조적 시간 만약 @deadline)
end

인스턴스 속성 세부 정보

#Deadline 객체(읽기 전용)

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



28
29
30
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 28

def 마감일
  @deadline
end

#operation_timeout 객체(읽기 전용)

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



28
29
30
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 28

def operation_timeout
  @operation_timeout
end

#timeout_sec 객체(읽기 전용)

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



28
29
30
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 28

def timeout_sec
  @timeout_sec
end

인스턴스 메서드 세부 정보

#check_timeout!객체

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

작업 시간 제한이 만료되었는지 확인하고, 만료된 경우 적절한 오류를 발생시킵니다.

다음을 발생시킵니다.



84
85
86
87
88
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 84

def check_timeout!
  반환 하지 않는 한 timeout_expired?

  올리다 오류::시간 초과 오류, "작업에 #{timeout_sec}초 이상 소요됨"
end

#csot?true | false

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

작업에 CSOT를 사용할 수 있는지 여부를 반환합니다.

반환합니다:

  • (true | false)

    작업에 CSOT를 사용할 수 있는지 여부



31
32
33
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 31

def csot?
  !마감일.nil?
end

#남은_타임아웃_ms정수 | nil

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

작업에 대해 설정하다 제한 시간의 남은 밀리초를 반환합니다. 제한 시간이 설정하다 않았거나 제한 시간이 0이면(무제한을 의미) nil을 반환합니다.

반환합니다:

  • (정수 | nil)

    작업에 대해 설정하다 제한 시간의 남은 밀리초를 반환합니다. 제한 시간이 설정하다 않았거나 제한 시간이 0이면(무제한을 의미) nil을 반환합니다.



58
59
60
61
62
63
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 58

def 나머지_시간 초과_ms
   = 나머지_시간 초과_초
  반환 nil 만약 .nil?

  ( * 1_000).to_i
end

#남은_타임아웃_ms!객체

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



65
66
67
68
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 65

def 잔여 시간 초과_ms!
  check_timeout!
  나머지_시간 초과_ms
end

#남은_시간_초플로트 | nil

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

작업에 대해 설정하다 제한 시간의 남은 시간(초)을 반환합니다. 제한 시간이 설정하다 않았거나 제한 시간이 0이면(무제한을 의미) nil을 반환합니다.

반환합니다:

  • (Float | nil)

    작업에 대해 설정하다 제한 시간의 남은 시간(초)을 반환합니다. 제한 시간이 설정하다 않았거나 제한 시간이 0이면(무제한을 의미) nil을 반환합니다.



44
45
46
47
48
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 44

def 나머지_시간 초과_초
  반환 nil 하지 않는 한 시간 초과?

  마감일 - Utils.단조적 시간
end

#남은_시간_초!객체

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



50
51
52
53
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 50

def 나머지_시간 초과_초!
  check_timeout!
  나머지_시간 초과_초
end

#timeout?true | false

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

CSOT가 활성화되지 않았거나 CSOT가 0 (무제한을 의미)로 설정하다 경우 false를 반환하고, 그렇지 않으면 true를 반환합니다.

반환합니다:

  • (true | false)

    CSOT가 활성화되지 않았거나 CSOT가 0 (무제한을 의미)로 설정하다 경우 false를 반환하고, 그렇지 않으면 true를 반환합니다.



37
38
39
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 37

def 시간 초과?
  ![ nil, 0 ].포함?(@deadline)
end

#timeout_expired?true | false

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

작업 시간 제한이 만료되었는지 여부를 반환합니다. 제한 시간이 설정하다 되지 않은 경우 이 메서드는 false를 반환합니다.

반환합니다:

  • (true | false)

    작업 시간 제한이 만료되었는지 여부입니다. 제한 시간이 설정하다 되지 않은 경우 이 메서드는 false를 반환합니다.



72
73
74
75
76
77
78
# 파일 'lib/ Mongo/csot_timeout_holder.rb', 줄 72

def timeout_expired?
  만약 시간 초과?
    Utils.단조적 시간 >= 마감일
  other
    거짓
  end
end