클래스: Mongo::Server
- 상속:
-
객체
- 객체
- Mongo::Server
- 확장자:
- 전달 가능
- 다음을 포함합니다.
- 이벤트::게시자, 모니터링::게시 가능
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/server.rb,
build/ruby-driver-v2.19/lib/mongo/server/monitor.rb,
build/ruby-driver-v2.19/lib/mongo/server/connection.rb,
build/ruby-driver-v2.19/lib/mongo/server/description.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/app_metadata.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/push_monitor.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/connection_base.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/connection_pool.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/connection_common.rb,
build/ Ruby-driver-v2.19/lib/mongo/server/monitor/connection.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/pending_connection.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/description/features.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/monitor/app_metadata.rb,
build/ Ruby-driver-v2.19/lib/mongo/server/app_metadata/platform.rb,
build/ruby-driver-v2.19/lib/mongo/server/app_metadata/truncator.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/push_monitor/connection.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/app_metadata/environment.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/round_trip_time_averager.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/connection_pool/populator.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/description/load_balancer.rb,
빌드/루비 드라이버-v2.19/lib/mongo/server/connection_pool/generation_manager.rb
개요
독립형, 복제본 세트 의 일부 또는 mongos 일 수 있는 서버 측의 단일 서버 를 나타냅니다.
네임스페이스 아래에 정의됨
클래스: AppMetadata, Connection, ConnectionBase, ConnectionCommon, ConnectionPool, 설명, 모니터, PendingConnection, PushMonitor, RoundTripTimeAverager
상수 요약 접기
- CONNECT_TIMEOUT =
연결 시도 시간을 초과하는 기본값 시간(초)입니다.
10.동결
Loggable에서 포함된 상수
인스턴스 속성 요약 접기
-
#주소 ⇒ string
읽기 전용
서버 에 대해 구성된 주소 입니다.
-
클러스터 #클러스터 ⇒ 클러스터
읽기 전용
클러스터 서버 클러스터 입니다.
-
#description ⇒ Server::Description
읽기 전용
설명 서버 설명 모니터 가 새로 고쳐집니다.
-
#monitor ⇒ nil | Monitor
읽기 전용
모니터 서버 모니터입니다.
-
#모니터링 ⇒ 모니터링
읽기 전용
모니터링 모니터링.
-
옵션 #개 ⇒ 해시
읽기 전용
옵션 해시입니다.
-
#round_trip_time_averager ⇒ RoundTripTimeAverager
읽기 전용
비공개
왕복 시간 평균기 객체.
-
#스캔_ 세마포어 ⇒ 세마포어
읽기 전용
비공개
모니터 가 실행 경우 해당 서버 에 대한 즉각적인 스캔을 요청 하도록 신호를 보내는 세마포어입니다.
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, &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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버는 클러스터 외부에서 직접 인스턴스화해서는 안 됩니다.
새 서버 객체 를 인스턴스화합니다. 배경 새로 고침을 시작하고 적절한 이벤트를 구독 합니다.
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 99 100 101 102 103 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 71 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_averager = 왕복 시간 평균.신규 @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, )) 하지 않는 한 _monitor == 거짓 start_monitoring end end @connected = true @pool_lock = 뮤텍스.신규 end |
인스턴스 속성 세부 정보
#주소 ⇒ string (읽기 전용)
서버 에 대해 구성된 주소 를 반환합니다.
106 107 108 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 106 def 주소 @address end |
#클러스터 ⇒ cluster (읽기 전용)
반환값 클러스터 서버 클러스터 입니다.
109 110 111 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 109 def cluster @cluster end |
#description ⇒ Server::Description (읽기 전용)
모니터 가 새로 고침되는 설명 서버 설명을 반환합니다.
123 124 125 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 123 def description @description end |
#모니터 ⇒ nil | 모니터 (읽기 전용)
모니터를 반환합니다. nil은 monitoring_io: false 옵션을 사용하여 서버를 생성한 경우입니다.
113 114 115 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 113 def 모니터 모니터 end |
#모니터링 ⇒ 모니터링 (읽기 전용)
모니터링을 반환합니다.
119 120 121 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 119 def 모니터링 @monitoring end |
#options ⇒ 해시 (읽기 전용)
옵션 해시를 반환합니다.
116 117 118 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 116 def @options end |
#round_trip_time_averager ⇒ RoundTripTimeAverager (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
왕복 시간 평균기 객체를 반환합니다.
233 234 235 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 233 def round_trip_time_averager @round_trip_time_averager end |
#스캔_ 세마포어 ⇒ 세마포어 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 서버가 실행 경우 모니터 가 해당 서버 에 대한 즉각적인 스캔을 요청 하도록 신호를 보내는 세마포어를 반환합니다.
229 230 231 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 229 def scan_semapher @scan_semapher end |
인스턴스 메서드 세부 정보
#==(기타) ⇒ true, false
이 서버 가 다른 서버와 동일합니까?
245 246 247 248 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 245 def ==(기타) 반환 거짓 하지 않는 한 기타.is_a?(서버) 주소 == 기타.주소 end |
#clear_connection_pool(service_id: nil, interrupt_in_use_connections: false) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
667 668 669 670 671 672 673 674 675 676 677 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 667 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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
알 수 없는 것으로 간주되어 안전하게 연결이 끊어질 수 있도록 서버 설명을 지웁니다.
657 658 659 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 657 def clear_description @description = mongo::서버::설명.신규(주소, {}) end |
#닫기 ⇒ 객체
294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 294 def 닫기 만약 모니터 모니터.중지! end @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입니다.
181 182 183 184 185 186 187 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 181 def 압축기 만약 모니터 모니터.압축기 other nil end end |
#connectable? ⇒ true, false
MongoDB 서버 선택 사양에서는 더 이상 필요하지 않습니다.
서버에 대한 연결을 설정할 수 있고 해당 서버로 메시지를 보낼 수 있는지 확인합니다.
261 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 261 def 연결 가능?; end |
#연결되었나요? ⇒ true|false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 연결 여부입니다.
320 321 322 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 320 def 연결됨? @connected end |
#연결 해제! ⇒ true
이 서버에서 드라이버 연결을 해제합니다.
연결 풀 에서 이 서버 에 대한 모든 유휴 연결(있는 경우)의 연결을 끊습니다. 연결 풀 의 채우기가 실행 경우 중지합니다. 현재 체크아웃된(즉, 사용 중인) 연결을 즉시 닫지 않습니다. 이러한 연결은 해당 연결 풀로 되돌아갈 때 닫힙니다. 서버의 배경 모니터 를 중지합니다.
275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 275 def 연결 해제! 만약 모니터 모니터.중지! end @connected = 거짓 # 현재 CMAP 사양은 풀이 대부분 사용할 수 없도록 요구합니다. # 서버를 알 수 없는 경우(또는 연결이 끊어진 경우). # 그러나 미해결 작업은 계속 완료되어야 합니다. # 그리고 해당 연결은 풀에 체크인되어야 합니다. # 분해되었습니다. 이 정리 요구 사항으로 인해 다음을 수행할 수 없습니다. # 풀을 닫고 여기에서 nil로 설정하다 하여 다음에 다시 생성합니다. # 서버가 검색된 시간입니다. pool_internal&.지우기 true end |
#force_load_balancer? ⇒ true | false
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 서버가 로드 밸런서를 강제로 사용할지 여부를 반환합니다.
130 131 132 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 130 def force_load_balancer? [:connect] == :load_balancing end |
#handle_auth_failure! ⇒ 객체
인증 실패를 처리합니다.
524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 524 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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
핸드셰이크 실패를 처리합니다.
501 502 503 504 505 506 507 508 509 510 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 501 def handle_handShake_failure! yield 구출 mongo::오류::SocketError, mongo::오류::SocketTimeoutError => e 알 수 없음!( 생성: e.생성, service_id: e.service_id, stop_push_monitor: true, ) 올리다 end |
#heartbeat_frequency ⇒ Object 다음과 같이 알려진 객체: heartbeat_ Frequency_seconds
159 160 161 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 159 def 하트비트_빈도 cluster.heartbeat_interval end |
#검사 ⇒ string
예쁜 인쇄된 서버 검사를 받으세요.
355 356 357 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 355 def 검사 "#<Mongo::Server:0x#{object_id} 주소=#{주소.호스팅하다}:#{주소.포트} #{status}>" end |
#last_scan ⇒ 시간 | nil
last_scan 마지막 서버 스캔이 완료된 시간을 반환하고, 서버 가 아직 스캔되지 않은 경우 nil을 반환합니다.
138 139 140 141 142 143 144 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 138 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을 반환합니다.
149 150 151 152 153 154 155 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 149 def last_scan_monotime 만약 description && !description.config.비어 있나요? description.last_update_monotime other @last_scan_monotime end end |
#match_tag_set?(tag_set) ⇒ true, false
제공된 태그가 서버 태그의 하위 집합인지 확인합니다.
461 462 463 464 465 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 461 def matches_tag_set?(tag_set) tag_set.키.모두? do |k| [k] && [k] == tag_set[k] end end |
#Next_connection_id ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
680 681 682 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 680 def Next_connection_id @connection_id_gen.Next_id end |
#풀 ⇒ Mongo::Server::ConnectionPool
이 서버 의 연결 풀 을 가져옵니다.
424 425 426 427 428 429 430 431 432 433 434 435 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 424 def 풀 만약 알 수 없음? 올리다 오류::ServerNotUsable, 주소 end @pool_lock.동기화 do opts = 연결됨? ? : .merge(populator_io: 거짓) @pool ||= 연결 풀.신규(self, opts).탭 do |풀| 풀.준비됨 end end end |
#Pool_internal ⇒ Server::ConnectionPool | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 서버의 연결 풀을 검색하는 내부 드라이버 메서드입니다.
과 달리 pool
는pool_internal
풀이 아직 존재하지 않는 경우 풀을 생성하지 않습니다.
445 446 447 448 449 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 445 def pool_internal @pool_lock.동기화 do @pool end end |
#publish_opening_event ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 열기 이벤트 를 게시합니다.
340 341 342 343 344 345 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 340 def publish_opening_event publish_sdam_event( 모니터링::SERVER_OPENING, 모니터링::이벤트::ServerOpening.신규(주소, cluster.토폴로지) ) end |
#다시 연결하세요! ⇒ true
서버 모니터 를 다시 시작합니다.
475 476 477 478 479 480 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 475 def 다시 연결합니다! 만약 [:monitoring_io] != 거짓 모니터.다시 시작! end @connected = true end |
#retry_reads? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 가 최신 읽기 재시도를 지원하는지 여부.
543 544 545 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 543 def retry_reads? !!(기능.세션_활성화? && logical_session_timeout) end |
#retry_writes? ⇒ true, false
재시도 가능 쓰기는 서버 버전 3.6이상 및 샤드 클러스터 또는 복제본 세트에서만 사용할 수 있습니다.
이 메서드의 일부 조건은 로드 밸런싱된 토폴로지에 대해 자동으로 false를 반환합니다. 부하 분산 토폴로지는 MongoDB 5.0+에서만 사용할 수 있고 독립형 토폴로지에서는 사용할 수 없으므로 이 방법의 조건은 항상 참이어야 합니다. 따라서 재시도 쓰기가 활성화되어 있다고 가정할 수 있습니다.
이 서버 로 전송된 쓰기를 다시 시도합니다.
564 565 566 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 564 def retry_writes? !!(기능.세션_활성화? && logical_session_timeout && !독립형?) || load_balancer? end |
#start_monitoring ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 모니터링을 시작합니다.
운전자 에서 내부적으로 사용하여 서버 가 클러스터에 추가될 때까지 모니터링 을 지연하면서 클러스터 에 서버 를 추가 클러스터.
330 331 332 333 334 335 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 330 def start_monitoring publish_opening_event 만약 [:monitoring_io] != 거짓 모니터.실행! end end |
#status ⇒ String
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 상태를 나타내는 string 을 반환합니다(예: PRIMARY).
362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 362 def 상태 case when load_balancer? 'LB' when 프라이머리? 'PRIMARY' when 세컨더리? 'SECONDARY' when 독립형? 'STANDALONE' when 중재자? 'ARBITER' when ghost? 'GHOST' when 기타? 'OTHER' when mongos? 'MONGOS' when 알 수 없음? '알 수 없음' other # 요약 메서드는 디버깅에 자주 사용되므로 # 예상되는 유형 중 일치하는 유형이 없는 경우 예외 nil end end |
#요약 ⇒ 객체
이 방법은 실험적이며 변경될 수 있습니다.
393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 393 def 요약 상태 = self.상태 || '' 만약 replica_set_name 상태 += " replica_set=#{replica_set_name}" end 하지 않는 한 모니터&.실행? 상태 += " NO-MONITORING" end 만약 @pool 상태 += " 풀=#{@pool.요약}" end 주소_비트 = 만약 주소 "#{주소.호스팅하다}:#{주소.포트}" other 'nil' end "#<서버 주소=#{주소_비트} #{status}>" end |
#알 수 없음!(options = {}) ⇒ 객체
서버 를 알 수 없음으로 표시하고 관련 SDAM 이벤트 를 게시합니다(서버 설명 변경됨).
옵션에서 세대를 전달하는 경우 전달된 세대가 서버 연결 풀 의 현재 세대보다 오래되지 않은 경우에만 서버 가 알 수 없음으로 표시됩니다.
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 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 592 def 알 수 없음!( = {}) 풀 = pool_internal 만약 load_balancer? # 클라이언트 가 로드 밸런싱된 토폴로지 에 있는 경우, 서버(하나 및 # 로드 밸런서로 시작하여 로드 밸런서 로 유지됩니다. # 로드 밸런서 무기한. 따라서 알 수 없음으로 표시되지 않습니다. # # 그러나 이 메서드는 서버 의 연결 풀 도 지웁니다. # 후자가 알 수 없음으로 표시되어 있고 이 부분이 수행되어야 하는 경우 # 서버가 로드 밸런서인 경우. # # 로드 밸런서 서버에 서비스 ID가 없을 수 있습니다. # 예를 예시 아직 성공적인 연결이 없는 경우 # 이 서버이지만 다음과 같은 경우 서버가 여전히 알 수 없음으로 표시될 수 있습니다. 이러한 연결의 #가 설정 도중에 실패했습니다. 만약 service_id = [:service_id] 풀&.연결 해제!(service_id: service_id) end 반환 end 만약 [:generation] && [:generation] < 풀&.생성 반환 end 만약 [:topology_version] && description.topology_version && ![:topology_version].gt?(description.topology_version) then 반환 end 만약 [:stop_push_monitor] 모니터&.stop_push_monitor! end # SDAM 흐름은 제자리에서 없이 서버 의 설명을 업데이트 합니다. # 변형을 처리하고 필요에 따라 SDAM 전환을 호출합니다. config = {} 만약 [:service_id] config['serviceId'] = [:service_id] end 만약 [:topology_version] config['topologyVersion'] = [:topology_version] end 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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
645 646 647 648 649 650 651 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 645 def update_description(description) 풀 = pool_internal 만약 풀 && !description.알 수 없음? 풀.준비됨 end @description = description end |
#update_last_scan ⇒ Object
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
685 686 687 688 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 685 def update_last_scan @last_scan = 시간.지금 @last_scan_monotime = Utils.단조적 시간 end |
#with_connection(connection_global_id: nil, &block) ⇒ 객체
연결을 통해 코드 블록을 실행하고, 서버의 풀에서 체크아웃했다가 다시 체크인합니다.
493 494 495 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/server.rb', 줄 493 def with_connection(connection_global_id: nil, &차단) 풀.with_connection(connection_global_id: connection_global_id, &차단) end |