클래스: Mongo::Server
- 상속:
-
객체
- 객체
- Mongo::Server
- 확장자:
- 전달 가능
- 다음을 포함합니다.
- 이벤트::게시자, 모니터링::게시 가능
- 다음에 정의됨:
- lib/ Mongo/ 서버.rb
,
lib/
Mongo/ 서버/
모니터.rb,
lib/ Mongo/ 서버/connection.rb, lib/
Mongo/ 서버/description.rb, lib/ Mongo/ 서버/app_metadata.rb, lib/ Mongo/ 서버/push_monitor.rb, lib/ Mongo/ 서버/connection_base.rb, lib/ Mongo/ 서버/connection_pool.rb, lib/ Mongo/ 서버/connection_common.rb, lib/
Mongo/ 서버/ 모니터/connection.rb, lib/ Mongo/ 서버/pending_connection.rb,
lib/ Mongo/ 서버/description/features.rb,
lib/ Mongo/ 서버/ 모니터/app_metadata.rb, lib/
Mongo/ 서버/app_metadata/platform.rb, lib/
Mongo/ 서버/app_metadata/truncator.rb, lib/ Mongo/ 서버/push_mongo/connection.rb,
lib/ Mongo/ 서버/app_metadata/environment.rb,
lib/ Mongo/ 서버/connection_pool/populator.rb, lib/ Mongo/ 서버/ description/load_balancer.rb,
lib/ Mongo/ 서버/round_trip_time_calculator.rb,
lib/ Mongo/ 서버/connection_pool/generation_manager.rb
개요
독립형, 복제본 세트 의 일부 또는 mongos 일 수 있는 서버 측의 단일 서버 를 나타냅니다.
네임스페이스 아래에 정의됨
클래스: AppMetadata, Connection, ConnectionBase, ConnectionCommon, ConnectionPool, description, Monitor, PendingConnection, PushMonitor, RoundTripTimeCalculator
상수 요약 접기
- CONNECT_TIMEOUT =
연결 시도 시간을 초과하는 기본값 시간(초)입니다.
10
Loggable에서 포함된 상수
인스턴스 속성 요약 접기
-
#주소 ⇒ string
읽기 전용
서버 에 대해 구성된 주소 입니다.
-
클러스터 #클러스터 ⇒ 클러스터
읽기 전용
클러스터 서버 클러스터 입니다.
-
#description ⇒ Server::Description
읽기 전용
설명 서버 설명 모니터 가 새로 고쳐집니다.
-
#monitor ⇒ nil | Monitor
읽기 전용
모니터 서버 모니터입니다.
-
#모니터링 ⇒ 모니터링
읽기 전용
모니터링 모니터링.
-
옵션 #개 ⇒ 해시
읽기 전용
옵션 해시입니다.
-
#round_trip_time_calculator ⇒ RoundTripTimeCalculator
읽기 전용
비공개
왕복 시간 계산기 객체.
-
#스캔_ 세마포어 ⇒ 세마포어
읽기 전용
비공개
모니터 가 실행 경우 해당 서버 에 대한 즉각적인 스캔을 요청 하도록 신호를 보내는 세마포어입니다.
Event::Publisher에 포함된 속성
인스턴스 메서드 요약 접기
-
#==(기타) ⇒ true, false
이 서버가 다른 서버와 동일합니까?
- #clear_connection_pool(service_id: nil, interrupt_in_use_connections: false) ⇒ 객체 비공개
-
#clear_description ⇒ 객체
비공개
알 수 없는 것으로 간주되어 안전하게 연결이 끊어질 수 있도록 서버 설명을 지웁니다.
- #닫기 ⇒ 객체
- #압축기 ⇒ string | nil 사용 중단 더 이상 사용되지 않습니다.
-
#connectable? ⇒ 참, 거짓
사용 중단
더 이상 사용되지 않습니다.
MongoDB 서버 선택 사양에서는 더 이상 필요하지 않습니다.
-
#연결되었나요? ⇒ true|false
비공개
서버 연결 여부입니다.
-
#연결 해제! ⇒ true
이 서버에서 드라이버 연결을 해제합니다.
-
#force_load_balancer? ⇒ true | false
비공개
이 서버가 로드 밸런서를 강제로 사용할지 여부를 반환합니다.
-
#handle_auth_failure! ⇒ 객체
인증 실패를 처리합니다.
-
#handle_handShake_failure! ⇒ 객체
비공개
핸드셰이크 실패를 처리합니다.
- #하트비트 _빈도수 ⇒ 객체 (동의어: #하트비트_빈도수_초) 사용 중단 더 이상 사용되지 않습니다.
-
#initialize(주소, 클러스터, 모니터링, event_listeners, options = {}) ⇒ 서버
생성자
비공개
새 서버 객체 를 인스턴스화합니다.
-
#검사 ⇒ string
예쁜 인쇄된 서버 검사를 받으세요.
-
#last_scan ⇒ 시간 | nil
Last_scan 마지막 서버 스캔이 완료된 시간이며, 서버 가 아직 스캔되지 않은 경우 nil입니다.
-
#last_scan_monotime ⇒ Float | nil
비공개
Last_scan_monotime 마지막 서버 스캔이 완료된 단조적 시간이며, 서버 가 아직 스캔되지 않은 경우 nil입니다.
-
#matches_tag_set?(tag_set) ⇒ true, false
제공된 태그가 서버 태그의 하위 집합인지 확인합니다.
- #Next_connection_id ⇒ 객체 비공개
-
#풀 ⇒ Mongo::Server::ConnectionPool
이 서버 의 연결 풀 을 가져옵니다.
-
#Pool_internal ⇒ Server::ConnectionPool | nil
비공개
이 서버의 연결 풀을 검색하는 내부 드라이버 메서드입니다.
-
#publish_opening_event ⇒ 객체
비공개
서버 열기 이벤트 를 게시합니다.
-
#다시 연결하세요! ⇒ true
서버 모니터 를 다시 시작합니다.
-
#retry_reads? ⇒ 부울
비공개
서버 가 최신 읽기 재시도를 지원하는지 여부.
-
#retry_writes? ⇒ 참, 거짓
이 서버 로 전송된 쓰기를 다시 시도합니다.
-
#start_monitoring ⇒ 객체
비공개
서버 모니터링을 시작합니다.
-
#상태 ⇒ string
비공개
서버 상태를 나타내는 string (예: PRIMARY).
- #요약 ⇒ 객체
-
#알 수 없음!(options = {}) ⇒ 객체
서버 를 알 수 없음으로 표시하고 관련 SDAM 이벤트 를 게시합니다(서버 설명 변경됨).
- #update_description(description) ⇒ 객체 비공개
- #update_last_scan ⇒ Object 비공개
-
#with_connection(connection_global_id: nil, context: nil, &block) ⇒ 객체
연결을 통해 코드 차단 실행하고, 서버의 풀에서 체크아웃했다가 다시 체크인합니다.
Event::Publisher에 포함된 메서드
Monitoring::Publishable에 포함된 메서드
#publish_cmap_event, #publish_event, #publish_s담_event
Loggable에 포함된 메서드
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
생성자 세부 정보
#initialize(address, cluster, monitoring, event_listeners, options = {}) ⇒ MongoDB Server
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버는 클러스터 외부에서 직접 인스턴스화해서는 안 됩니다.
새 서버 객체 를 인스턴스화합니다. 배경 새로 고침을 시작하고 적절한 이벤트를 구독 합니다.
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# 파일 'lib/ Mongo/ 서버.rb', 69줄 def 초기화(주소, cluster, 모니터링, event_listeners, = {}) @address = 주소 @cluster = cluster @monitoring = 모니터링 = .dup _monitor = .삭제(:monitor) @options = .동결 @event_listeners = event_listeners @connection_id_gen = 클래스.신규 do 포함 ID end @scan_semapher = DistingushingSemapher.신규 @round_trip_time_calculator = 왕복 시간 계산기.신규 @description = 설명.신규(주소, {}, load_balancer: !!@options[:load_balancer], force_load_balancer: force_load_balancer?) @last_scan = nil @last_scan_monotime = nil 하지 않는 한 [:monitoring_io] == 거짓 모니터 = 모니터.신규(self, event_listeners, 모니터링, .merge( app_metadata: cluster., push_monitor_app_metadata: cluster., heartbeat_interval: cluster.heartbeat_interval )) start_monitoring 하지 않는 한 _monitor == 거짓 end @connected = true @pool_lock = 뮤텍스.신규 end |
인스턴스 속성 세부 정보
#주소 ⇒ string (읽기 전용)
서버 에 대해 구성된 주소 를 반환합니다.
101 102 103 |
# 파일 'lib/ Mongo/ 서버.rb', 101줄 def 주소 @address end |
#클러스터 ⇒ cluster (읽기 전용)
반환값 클러스터 서버 클러스터 입니다.
104 105 106 |
# 파일 'lib/ Mongo/ 서버.rb', 104줄 def cluster @cluster end |
#description ⇒ Server::Description (읽기 전용)
모니터 가 새로 고침되는 설명 서버 설명을 반환합니다.
118 119 120 |
# 파일 'lib/ Mongo/ 서버.rb', 118줄 def description @description end |
#모니터 ⇒ nil | 모니터 (읽기 전용)
모니터 서버 모니터 반환합니다. nil은 서버 monitoring_io: false 옵션으로 생성된 경우입니다.
108 109 110 |
# 파일 'lib/ Mongo/ 서버.rb', 108줄 def 모니터 모니터 end |
#모니터링 ⇒ 모니터링 (읽기 전용)
모니터링을 반환합니다.
114 115 116 |
# 파일 'lib/ Mongo/ 서버.rb', 114줄 def 모니터링 @monitoring end |
#options ⇒ 해시 (읽기 전용)
옵션 해시를 반환합니다.
111 112 113 |
# 파일 'lib/ Mongo/ 서버.rb', 111줄 def @options end |
#round_trip_time_calculator ⇒ RoundTripTimeCalculator (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
반환값 왕복 시간 계산기 객체.
227 228 229 |
# 파일 'lib/ Mongo/ 서버.rb', 227줄 def round_trip_time_calculator @round_trip_time_calculator end |
#스캔_ 세마포어 ⇒ 세마포어 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 서버가 실행 경우 모니터 가 해당 서버 에 대한 즉각적인 스캔을 요청 하도록 신호를 보내는 세마포어를 반환합니다.
223 224 225 |
# 파일 'lib/ Mongo/ 서버.rb', 223줄 def scan_semapher @scan_semapher end |
인스턴스 메서드 세부 정보
#==(기타) ⇒ true, false
이 서버 가 다른 서버와 동일합니까?
239 240 241 242 243 |
# 파일 'lib/ Mongo/ 서버.rb', 239줄 def ==(기타) 반환 거짓 하지 않는 한 기타.is_a?(서버) 주소 == 기타.주소 end |
#clear_connection_pool(service_id: nil, interrupt_in_use_connections: false) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
642 643 644 645 646 647 648 649 650 651 652 |
# 파일 'lib/ Mongo/ 서버.rb', 642줄 def clear_connection_pool(service_id: nil, interrupt_in_use_connections: 거짓) @pool_lock.동기화 do # 닫힌 후 알 수 없음으로 표시된 서버는 기술적으로 # 올바르지 않지만 어떤 상태 도 의미 있게 변경하지는 않습니다. # 이전에는 드라이버가 서버를 다음과 같이 표시하도록 허용했기 때문입니다. 언제든지 알 수 없음, 풀이 닫혀도 계속 이 작업을 수행합니다. 만약 @pool && !@pool.닫힘? @pool.연결 해제!(service_id: service_id, interrupt_in_use_connections: interrupt_in_use_connections) end end end |
#clear_description ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
알 수 없는 것으로 간주되어 안전하게 연결이 끊어질 수 있도록 서버 설명을 지웁니다.
632 633 634 |
# 파일 'lib/ Mongo/ 서버.rb', 632줄 def clear_description @description = mongo::서버::설명.신규(주소, {}) end |
#닫기 ⇒ 객체
287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 |
# 파일 'lib/ Mongo/ 서버.rb', 287줄 def 닫기 모니터.중지! 만약 모니터 @connected = 거짓 _pool = nil @pool_lock.동기화 do _pool, @pool = @pool, nil end # TODO: RUBY-3174 에서 _pool.close 로 변경합니다. # 풀을 비웁니다. 서버를 알 수 없는 경우 # 풀은 준비된 상태로 유지됩니다. 배경 채우기 스레드를 중지합니다. _pool&.닫기(rest_ready: true) nil end |
#compressor ⇒ String | nil
압축은 각 연결에 대해 별도로 협상됩니다.
서버 모니터 가 협상한 압축기(있는 경우)입니다.
서버 검사가 아직 완료되지 않았고 압축이 협상되지 않은 경우 이 속성은 nil입니다.
175 176 177 178 179 |
# 파일 'lib/ Mongo/ 서버.rb', 175줄 def 압축기 반환 하지 않는 한 모니터 모니터.압축기 end |
#connectable? ⇒ true, false
MongoDB 서버 선택 사양에서는 더 이상 필요하지 않습니다.
서버에 대한 연결을 설정할 수 있고 해당 서버로 메시지를 보낼 수 있는지 확인합니다.
256 |
# 파일 'lib/ Mongo/ 서버.rb', 256줄 def 연결 가능?; end |
#연결되었나요? ⇒ true|false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 연결 여부입니다.
311 312 313 |
# 파일 'lib/ Mongo/ 서버.rb', 311줄 def 연결됨? @connected end |
#연결 해제! ⇒ true
이 서버에서 드라이버 연결을 해제합니다.
연결 풀 에서 이 서버 에 대한 모든 유휴 연결(있는 경우)의 연결을 끊습니다. 연결 풀 의 채우기가 실행 경우 중지합니다. 현재 체크아웃된(즉, 사용 중인) 연결을 즉시 닫지 않습니다. 이러한 연결은 해당 연결 풀로 되돌아갈 때 닫힙니다. 서버의 배경 모니터 중지합니다.
270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 |
# 파일 'lib/ Mongo/ 서버.rb', 270줄 def 연결 해제! 모니터.중지! 만약 모니터 @connected = 거짓 # 현재 CMAP 사양은 풀이 대부분 사용할 수 없도록 요구합니다. # 서버를 알 수 없는 경우(또는 연결이 끊어진 경우). # 그러나 미해결 작업은 계속 완료되어야 합니다. # 그리고 해당 연결은 풀에 체크인되어야 합니다. # 분해되었습니다. 이 정리 요구 사항으로 인해 다음을 수행할 수 없습니다. # 풀을 닫고 여기에서 nil로 설정하다 하여 다음에 다시 생성합니다. # 서버가 검색된 시간입니다. pool_internal&.지우기 true end |
#force_load_balancer? ⇒ true | false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 서버가 로드 밸런서를 강제로 사용할지 여부를 반환합니다.
125 126 127 |
# 파일 'lib/ Mongo/ 서버.rb', 125줄 def force_load_balancer? [:connect] == :load_balancing end |
#handle_auth_failure! ⇒ 객체
인증 실패를 처리합니다.
510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 |
# 파일 'lib/ Mongo/ 서버.rb', 510줄 def handle_auth_failure! yield 구출 mongo::오류::SocketTimeoutError # 클러스터 가 느릴 수 있으므로 포기하지 마세요. 올리다 구출 mongo::오류::SocketError, 인증::승인되지 않음 => e # 시간 초과가 아닌 네트워크 오류 또는 인증 오류, 풀을 지우고 # 토폴로지 를 알 수 없음으로 지정 알 수 없음!( 생성: e.생성, service_id: e.service_id, stop_push_monitor: true ) 올리다 end |
#handle_handShake_failure! ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
핸드셰이크 실패를 처리합니다.
485 486 487 488 489 490 491 492 493 494 495 496 |
# 파일 'lib/ Mongo/ 서버.rb', 485줄 def handle_handShake_failure! yield 구출 mongo::오류::SocketError, mongo::오류::SocketTimeoutError => e 하지 않는 한 e.레이블?('SystemOverloadedError') 알 수 없음!( 생성: e.생성, service_id: e.service_id, stop_push_monitor: true ) end 올리다 end |
#heartbeat_frequency ⇒ Object 다음과 같이 알려진 객체: heartbeat_ Frequency_seconds
153 154 155 |
# 파일 'lib/ Mongo/ 서버.rb', 153줄 def 하트비트_빈도 cluster.heartbeat_interval end |
#검사 ⇒ string
예쁜 인쇄된 서버 검사를 받으세요.
346 347 348 |
# 파일 'lib/ Mongo/ 서버.rb', 346줄 def 검사 "#<Mongo::Server:0x#{object_id} 주소=#{주소.호스팅하다}:#{주소.포트} #{status}>" end |
#last_scan ⇒ 시간 | nil
last_scan 마지막 서버 스캔이 완료된 시간을 반환하고, 서버 가 아직 스캔되지 않은 경우 nil을 반환합니다.
133 134 135 136 137 138 139 |
# 파일 'lib/ Mongo/ 서버.rb', 133줄 def last_scan 만약 description && !description.config.비어 있나요? description.last_update_time other @last_scan end end |
#last_scan_monotime ⇒ Float | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
last_scan_monotime 마지막 서버 스캔이 완료된 단조적 시간을 반환하고, 서버 가 아직 스캔되지 않은 경우 nil을 반환합니다.
144 145 146 147 148 149 150 |
# 파일 'lib/ Mongo/ 서버.rb', 144줄 def last_scan_monotime 만약 description && !description.config.비어 있나요? description.last_update_monotime other @last_scan_monotime end end |
#match_tag_set?(tag_set) ⇒ true, false
제공된 태그가 서버 태그의 하위 집합인지 확인합니다.
443 444 445 446 447 |
# 파일 'lib/ Mongo/ 서버.rb', 443줄 def matches_tag_set?(tag_set) tag_set.키.모두? do |k| [k] && [k] == tag_set[k] end end |
#Next_connection_id ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
655 656 657 |
# 파일 'lib/ Mongo/ 서버.rb', 655줄 def Next_connection_id @connection_id_gen.Next_id end |
#풀 ⇒ Mongo::Server::ConnectionPool
이 서버 의 연결 풀 을 가져옵니다.
408 409 410 411 412 413 414 415 416 417 |
# 파일 'lib/ Mongo/ 서버.rb', 408줄 def 풀 올리다 오류::ServerNotUsable, 주소 만약 알 수 없음? @pool_lock.동기화 do opts = 연결됨? ? : .merge(populator_io: 거짓) @pool ||= 연결 풀.신규(self, opts).탭 do |풀| 풀.준비됨 end end end |
#Pool_internal ⇒ Server::ConnectionPool | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 서버의 연결 풀을 검색하는 내부 드라이버 메서드입니다.
과 달리 pool 는pool_internal 풀이 아직 존재하지 않는 경우 풀을 생성하지 않습니다.
427 428 429 430 431 |
# 파일 'lib/ Mongo/ 서버.rb', 427줄 def pool_internal @pool_lock.동기화 do @pool end end |
#publish_opening_event ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 열기 이벤트 를 게시합니다.
331 332 333 334 335 336 |
# 파일 'lib/ Mongo/ 서버.rb', 331줄 def publish_opening_event publish_sdam_event( 모니터링::SERVER_OPENING, 모니터링::이벤트::ServerOpening.신규(주소, cluster.토폴로지) ) end |
#다시 연결하세요! ⇒ true
서버 모니터 를 다시 시작합니다.
457 458 459 460 |
# 파일 'lib/ Mongo/ 서버.rb', 457줄 def 다시 연결합니다! 모니터.다시 시작! 만약 [:monitoring_io] != 거짓 @connected = true end |
#retry_reads? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 가 최신 읽기 재시도를 지원하는지 여부.
529 530 531 |
# 파일 'lib/ Mongo/ 서버.rb', 529줄 def retry_reads? !!logical_session_timeout end |
#retry_writes? ⇒ true, false
재시도 가능 쓰기는 샤딩된 클러스터 또는 복제본 세트에서만 사용할 수 있습니다.
이 메서드의 일부 조건은 부하 분산된 토폴로지에 대해 자동으로 false를 반환합니다. 부하 분산된 토폴로지는 MongoDB 5.0+에서만 사용할 수 있고 독립형 토폴로지에서는 사용할 수 없으므로 이 방법의 조건은 항상 참이어야 합니다. 따라서 재시도 쓰기가 활성화되어 있다고 가정할 수 있습니다.
이 서버 로 전송된 쓰기를 다시 시도합니다.
549 550 551 |
# 파일 'lib/ Mongo/ 서버.rb', 549줄 def retry_writes? !!((logical_session_timeout && !독립형?) || load_balancer?) end |
#start_monitoring ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 모니터링을 시작합니다.
운전자 에서 내부적으로 사용하여 서버 가 클러스터에 추가될 때까지 모니터링 을 지연하면서 클러스터 에 서버 를 추가 클러스터.
321 322 323 324 325 326 |
# 파일 'lib/ Mongo/ 서버.rb', 321줄 def start_monitoring publish_opening_event 반환 하지 않는 한 [:monitoring_io] != 거짓 모니터.실행! end |
#status ⇒ String
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 상태를 나타내는 string 을 반환합니다(예: PRIMARY).
353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 |
# 파일 'lib/ Mongo/ 서버.rb', 353줄 def 상태 만약 load_balancer? 'LB' elsif 프라이머리? 'PRIMARY' elsif 세컨더리? 'SECONDARY' elsif 독립형? 'STANDALONE' elsif 중재자? 'ARBITER' elsif ghost? 'GHOST' elsif 기타? 'OTHER' elsif mongos? 'MONGOS' elsif 알 수 없음? '알 수 없음' other # 요약 메서드는 디버깅에 자주 사용되므로 # 예상되는 유형 중 일치하는 유형이 없는 경우 예외 nil end end |
#요약 ⇒ 객체
이 방법은 실험적이며 변경될 수 있습니다.
383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 |
# 파일 'lib/ Mongo/ 서버.rb', 383줄 def 요약 상태 = self.상태 || '' 상태 += " replica_set=#{replica_set_name}" 만약 replica_set_name 상태 += ' NO-MONITORING' 하지 않는 한 모니터&.실행? 상태 += " 풀=#{@pool.요약}" 만약 @pool 주소_비트 = 만약 주소 "#{주소.호스팅하다}:#{주소.포트}" other 'nil' end "#<서버 주소=#{주소_비트} #{status}>" end |
#알 수 없음!(options = {}) ⇒ 객체
서버 를 알 수 없음으로 표시하고 관련 SDAM 이벤트 를 게시합니다(서버 설명 변경됨).
옵션에서 세대를 전달하는 경우 전달된 세대가 서버 연결 풀 의 현재 세대보다 오래되지 않은 경우에만 서버 알 수 없음으로 표시됩니다.
577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 |
# 파일 'lib/ Mongo/ 서버.rb', 577줄 def 알 수 없음!( = {}) 풀 = pool_internal 만약 load_balancer? # 클라이언트 가 로드 밸런싱된 토폴로지 에 있는 경우, 서버(하나 및 # 로드 밸런서로 시작하여 로드 밸런서 로 유지됩니다. # 로드 밸런서 무기한. 따라서 알 수 없음으로 표시되지 않습니다. # # 그러나 이 메서드는 서버 의 연결 풀 도 지웁니다. # 후자가 알 수 없음으로 표시되어 있고 이 부분이 수행되어야 하는 경우 # 서버가 로드 밸런서인 경우. # # 로드 밸런서 서버에 서비스 ID가 없을 수 있습니다. # 예를 예시 아직 성공적인 연결이 없는 경우 # 이 서버이지만 다음과 같은 경우 서버가 여전히 알 수 없음으로 표시될 수 있습니다. 이러한 연결의 #가 설정 도중에 실패했습니다. 만약 service_id = [:service_id] 풀&.연결 해제!(service_id: service_id) end 반환 end # 참고: 풀이 nil이면 종료되므로 여기서는 세이프 탐색을 사용할 수 없습니다. # up이 Integer < nil을 평가하려고 시도하는 것은 유효하지 않습니다. 반환 만약 [:generation] && 풀 && [:generation] < 풀.생성 만약 [:topology_version] && description.topology_version && ![:topology_version].gt?(description.topology_version) 반환 end 모니터&.stop_push_monitor! 만약 [:stop_push_monitor] # SDAM 흐름은 제자리에서 없이 서버 의 설명을 업데이트 합니다. # 변형을 처리하고 필요에 따라 SDAM 전환을 호출합니다. config = {} config['serviceId'] = [:service_id] 만약 [:service_id] config['topologyVersion'] = [:topology_version] 만약 [:topology_version] new_description = 설명.신규(주소, config, load_balancer: load_balancer?, force_load_balancer: [:connect] == :load_balancing) cluster.run_sdam_flow(description, new_description, ) end |
#update_description(description) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
622 623 624 625 626 |
# 파일 'lib/ Mongo/ 서버.rb', 622줄 def update_description(description) 풀 = pool_internal 풀.준비됨 만약 풀 && !description.알 수 없음? @description = description end |
#update_last_scan ⇒ Object
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
660 661 662 663 |
# 파일 'lib/ Mongo/ 서버.rb', 660줄 def update_last_scan @last_scan = 시간.지금 @last_scan_monotime = Utils.단조적 시간 end |
#with_connection(connection_global_id: nil, context: nil, &block) ⇒ 객체
연결을 통해 코드 차단 실행하고, 서버의 풀에서 체크아웃했다가 다시 체크인합니다.
473 474 475 476 477 478 479 |
# 파일 'lib/ Mongo/ 서버.rb', 473줄 def with_connection(connection_global_id: nil, 컨텍스트: nil, &차단) 풀.with_connection( connection_global_id: connection_global_id, 컨텍스트: 컨텍스트, &차단 ) end |