모듈: Mongo::Error::ReadWriteRetryable
- 다음에 정의됨:
- lib/ Mongo/error/read_write_retryable.rb
개요
참고:
이 모듈의 메서드는 공개 API의 일부이지만 이러한 메서드가 이 모듈에서 정의되고 이 모듈을 포함하는 클래스에서 정의되지 않는다는 사실은 공개 API의 일부가 아닙니다.
오류를 재시도할 수 있는지 여부를 나타내는 기능을 캡슐화하는 모듈입니다.
상수 요약 접기
- WRITE_RETRY_ERRORS =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
쓰기 (write) 실패를 초래해야 하는 오류 코드 및 코드 이름입니다.
[ { code_name: 'HostUnreachable', 코드: 6 }, { code_name: 'HostNotFound', 코드: 7 }, { code_name: 'NetworkTimeout', 코드: 89 }, { code_name: 'ShutdownInProgress', 코드: 91 }, { code_name: 'PrimarySteppedDown', 코드: 189 }, { code_name: 'ExceededTimeLimit', 코드: 262 }, { code_name: 'SocketException', 코드: 9001 }, { code_name: 'NotMaster', 코드: 10_107 }, { code_name: 'InterruptedAtShutdown', 코드: 11_600 }, { code_name: 'InterruptedDueToReplStateChange', 코드: 11_602 }, { code_name: 'NotPrimaryNoSecondaryOk', 코드: 13_435 }, { code_name: 'NotMasterOrSecondary', 코드: 13_436 }, ].동결
- WRITE_RETRY_MESSAGES =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
다음은 마스터 변경을 나타낼 수 있는 오류 메시지입니다.
[ 'not master', '노드가 복구 중입니다. ', ].동결
- RETRY_MESSAGES =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
다음은 mongos 이면의 클러스터 재구성을 나타낼 수 있는 오류 메시지입니다.
WRITE_RETRY_MESSAGES + [ '전송 오류', '소켓 예외', "연결할 수 없습니다", '연결 실패', '쿼리 중', '마지막 오류를 가져올 수 없습니다.', '연결 시도 실패', '종료 시 중단됨', '알 수 없는 복제본 세트', '서버와 통신하는 동안 dbclient 오류가 발생했습니다. ' ].동결
인스턴스 메서드 요약 접기
- #재시도 가능? ⇒ 참, 거짓 사용 중단 더 이상 사용되지 않습니다.
-
#write_retryable? ⇒ 참, 거짓
최신 재시도 가능 읽기 및 재시도 가능 쓰기 사양에 따라 오류가 재시도 가능 오류인지 여부.
인스턴스 메서드 세부 정보
#재시도 가능? ⇒ true, false
더 이상 사용되지 않습니다.
레거시 읽기 재시도 로직에 따른 오류가 재시도 가능한 오류인지 여부입니다.
78 79 80 81 |
# 파일 'lib/ Mongo/error/read_write_retryable.rb', 줄 78 def 재시도 가능? write_retryable? || (코드.nil? && RETRY_MESSAGES.어떤? { |m| .포함?(m) }) end |
#write_retryable? ⇒ true, false
최신 재시도 가능 읽기 및 재시도 가능 쓰기 사양에 따라 오류가 재시도 가능 오류인지 여부.
이 메서드는 레거시 재시도 가능 쓰기 (write) 로직에서도 오류가 재시도 가능한지 여부를 결정하는 데 사용됩니다.
90 91 92 93 |
# 파일 'lib/ Mongo/error/read_write_retryable.rb', 줄 90 def write_retryable? write_retryable_code? || (코드.nil? && WRITE_RETRY_MESSAGES.어떤? { |m| .포함?(m) }) end |