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