クラス: Mongo::Server
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Server
- 次による拡張機能。
- 転送可能
- 次のことが含まれます。
- イベント::Publisher 、 MongoDB ::公開可能
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/server.rb 、
build/ruby-Driver-v 2.19 /lib/mongo/server/monitor.rb,
build/ruby-Driver-v 2.19 /lib/mongo/server/ connection.rb,
build/ruby-Driver-v 2.19 /lib/mongo/server/description.rb,
build/ruby-Driver-v 2 . 19 /lib/mongo/server/app_metadata.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/push_monitor.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/ connection_base.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/接続_プール.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/ connection_ Common.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/monitor/ connection.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/pending_ connection.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/description/features.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/monitor/app_metadata.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/app_metadata/プラットフォーム.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/app_metadata/truncator.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/push_monitor/ connection.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/app_metadata/environment.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/round_drop_time_averager.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/接続_プール/populator.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/description/load_ balancer.rb、
build/ruby-Driver-v 2 。 19 /lib/mongo/server/接続_プール/生成_manager.rb
Overview
スタンドアロン、レプリカセットの一部、または mongos にすることができるサーバー側の単一のサーバーを表します。
名前空間で定義済み
クラス: AppMetadata 、 Connection 、 ConnectionBase 、 ConnectionCommon 、 ConnectionPool 、 Description 、 trigger 、 PendingConnection 、 pusMonitor 、 RoundTryTimeAvelager
定数の概要の削減
- CONNECT_TIMEOUT =
接続試行のタイムアウトのデフォルト時間(秒単位)。
10.freeze
Loggableに含まれる定数
インスタンス属性の概要を折りたたむ
-
アドレス~ string
readOnly
サーバーの構成されたアドレス。
-
#cluster ⇒ Cluster
readOnly
クラスター サーバー クラスター。
-
# Description ~ Server:: Description
readOnly
説明 モニターが更新するサーバーの説明。
-
#monitor ⇒ nil | Monitor
readOnly
サーバー モニターを監視します。
-
#monitoring ⇒ Monitoring
readOnly
監視 監視。
-
#options ⇒ Hash
readOnly
オプションは ハッシュです。
-
#round_drop_time_averager =roundTの間、
readOnly
private
ラウンドトリップ時間平均オブジェクト。
-
# scan_smahour :セマフォア
readOnly
private
サーバーが実行中の場合は、モニターによるこのサーバーの即座のスキャンを要求するようにシグナルが送信されます。
Event::Publisherに含まれる属性
インスタンス メソッドの概要を折りたたむ
-
== (その他) ===(その他) ======================================
このサーバーは別のサーバーと等しいか?
- #クリア_接続_プール (service_id: nil、割り込み_in_use_ connections : false) = オブジェクト private
-
# clear_description =オブジェクト
private
サーバーの説明をクリアして、不明と見なし、安全に切断できるようにします。
- # close = オブジェクト
- #compressor ⇒ String | nil 非推奨 非推奨。
-
#接続可能かどうか = true、false
非推奨
非推奨。
サーバー選択の仕様が不要になりました。
-
#接続済みかどうか= true|false
private
サーバーが接続されているかどうか。
-
#切断します。 = true
このサーバーからドライバーを切断します。
-
force_load_ balancer は? = true | false
private
このサーバーが強制的にロード バランサーであるかどうかを返します。
-
#hand_auth_failure。 = オブジェクト
認証失敗の処理。
-
#handstake_failure。 = オブジェクト
private
ハンドシェイクの失敗を処理します。
- # heartbeat_frequency = オブジェクト(# heartbeat_frequency_seconds) 非推奨 非推奨。
-
#初期化(アドレス、クラスター、モニタリング、イベント_リスナー、オプション = {}) = サーバー
コンストラクター
private
新しいサーバー オブジェクトをインスタンス化します。
-
詳しくは、 を 検査し ますstring
サーバー検査の結果がかなり出力されるようになりました。
-
# last_scan =時間 | nil
Last_scan サーバーが最後にスキャンされた時刻、またはサーバーがまだスキャンされていない場合は nil です。
-
# last_scan_mongotime =浮動小数点数 | nil
private
Last_scan_mongostat は最後にサーバースキャンが完了した単調な時間で、サーバーがまだスキャンされていない場合は nil です。
-
#matches_tag_set?(tag_set) ⇒ true, false
提供された タグ がサーバーの タグのサブセット であるかどうかを判断します。
- #next_ connection_id =オブジェクト private
-
プール→ Mongo::Server::ConnectionPool
このサーバーの接続プールを取得します。
-
プール_内部 = Server::ConnectionPool | nil
private
このサーバーの接続プールを取得するための内部ドライバー メソッド。
-
# public_opening_event = Object
private
サーバーを開くイベントを公開します。
-
#再接続します。 = true
サーバー モニターを再起動します。
-
再試行_読み取りの回数 = ブール値
private
サーバーが最新の読み取り再試行をサポートしているかどうか。
-
retry_writes? = true、false
このサーバーに送信された書き込みを再試行します。
-
# start_monitoring =オブジェクト
private
サーバーの監視を開始します。
-
#status ⇒ String
private
サーバーの状態を表す string(例: プライマリ)。
- #のサマリー= オブジェクト
-
#不明です。 (オプション = {}) = オブジェクト
サーバーを不明としてマークし、関連する SDAM イベント(サーバーの説明が変更された)を公開します。
- # update_description (description) = オブジェクト private
- #update_last_scan ⇒ Object private
-
# with_ connection ( connection_ global_id: nil, & ブロック) = オブジェクト
接続を使用してコード ブロックを実行します。このブロックはサーバーのプールからチェックアウトされ、その後チェックインされます。
Event::Publisherに含まれるメソッド
から含まれるメソッド::public
#publish_cmap_event 、 #publish_event 、 #publish_sam_event
Loggableに含まれるメソッド
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
コンストラクターの詳細
#初期化(アドレス、クラスター、モニタリング、イベント_リスナー、オプション = {}) =サーバー
このメソッドは、プライベート 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-v 2.19 /lib/mongo/server.rb', 行71 デフォルト 初期化(address, クラスター, モニタリング, event_listenners, = {}) @address = address @cluster = クラスター @monitoring = モニタリング = .dup _monitor = .削除(:mongos) @options = .freeze @event_listenners = event_listenners @ connection_id_gen = クラス.新着情報 行う 次を含みます: id end @scan_smahour = DistinguishedSemahour.新着情報 @round_drop_time_averager = Double.新着情報 @description = 説明.新着情報(address, {}, load_Balancer: !!@options[:load_ balancer], force_load_Balancer: force_load_Balancer?, ) @last_scan = nil @last_scan_mongotime = nil ただし、 [:monitoring_io] == false @monitor = モニター.新着情報(自己, event_listenners, モニタリング, .merge( app_metadata: クラスター., push_monitor_app_metadata: クラスター., heartbeat_Interval: クラスター.heartbeat_Interval, )) ただし、 _monitor == false start_monitoring end end @connected = true @Pool_lock = ミューテックス.新着情報 end |
インスタンス属性の詳細
# address = string (読み取り専用)
サーバーの構成されたアドレスを返します。
106 107 108 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行106 デフォルト address @address end |
クラスター数(読み取り専用)
クラスター サーバー クラスターを返します。
109 110 111 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行109 デフォルト クラスター @cluster end |
# Description = Server:: Description (readonly)
Returns Description モニターが更新するサーバーの説明を返します。
123 124 125 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行123 デフォルト 説明 @description end |
#モニター= nil |モニター(読み取り専用)
サーバー モニターを返します。 サーバーが MongoDB_io: false オプションで作成されている場合は nil 。
113 114 115 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行113 デフォルト モニター @monitor end |
#monitoring ⇒ Monitoring (readonly)
監視 監視を返します。
119 120 121 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行119 デフォルト モニタリング @monitoring end |
オプション=ハッシュ(読み取り専用)
オプション ハッシュを返します。
116 117 118 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行116 デフォルト @options end |
#round_drop_time_averager = roundTの間、 RoundTrimAtlas (読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ラウンド トリップ時間平均オブジェクトを返します。
233 234 235 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行233 デフォルト round_drop_time_averager @round_drop_time_averager end |
# scan_smahour (読み取り専用) →セマフォア(readonly)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
サーバーが実行中の場合は、モニターによるこのサーバーの即座のスキャンを要求するようシグナルにセカンダリを返します。
229 230 231 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行229 デフォルト scan_smahour @scan_smahour end |
インスタンス メソッドの詳細
# == (その他) === (その他) ==================================================================================
このサーバーは別のサーバーと等しいか?
245 246 247 248 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行245 デフォルト ==(その他) return false ただし、 その他.is_a?(サーバー) address == その他.address end |
#クリア_接続_プール (service_id: nil、割り込み_in_use_ connections : false) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
667 668 669 670 671 672 673 674 675 676 677 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行667 デフォルト クリア_接続_プール(service_id: nil, insert_in_use_ connections: false) @Pool_lock.同期 行う # 閉じた後に不明としてマークされているサーバーは、技術的に # は誤りですが、状態は意味的に変更されません。 # ドライバーは歴史的にサーバーをマークすることを許可していた いつでも不明な場合は、プールが閉じられた場合でも同じ操作を続行します。 場合 @Pool & & !@Pool.閉じましたか @Pool.切断します。(service_id: service_id, insert_in_use_ connections: insert_in_use_ connections) end end end |
# clear_description =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
サーバーの説明をクリアして、不明と見なし、安全に切断できるようにします。
657 658 659 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行657 デフォルト clear_description @description = mongo::サーバー::説明.新着情報(address, {}) end |
# close =オブジェクト
294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行294 デフォルト 閉じる 場合 モニター モニター.停止します。 end @connected = false _Pool = nil @Pool_lock.同期 行う _Pool, @Pool = @Pool, nil end # TODO: これを Ruby- 3174の _Pool.close に変更します。 # プールをクリアします。 サーバーが不明でない場合、 # プールは準備ができたままになります。 バックグラウンド 入力 スレッドを停止します。 _Pool&.閉じる(retain_ready: true) nil end |
#compressor ⇒ String | nil
圧縮は、接続ごとに個別にネゴシエートされます。
コンプレッサーがサーバー モニターによってネゴシエートされた場合(存在する場合)、
この属性は、サーバー チェックがまだ完了していない場合、および圧縮が否定されていない場合は nil です。
181 182 183 184 185 186 187 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行181 デフォルト compressor 場合 モニター モニター.compressor else nil end end |
#接続可能かどうか = true 、 false
サーバー選択の仕様が不要になりました。
サーバーへの接続を確立でき、メッセージを送信できるかどうかを判断します。
261 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行261 デフォルト 接続可能かどうか; end |
#接続済みかどうか= true|false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
サーバーが接続されているかどうか。
320 321 322 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行320 デフォルト 接続されていますか? @connected end |
#切断します。 = true
このサーバーからドライバーを切断します。
接続プール内のこのサーバーへのすべてのアイドル接続を切断します(存在する場合)。 接続プールが実行中の場合は、接続プールの入力を停止します。 現在チェックアウトされている(つまり、使用中)の接続をすぐに閉じません。このような接続は、それぞれの接続プールに返されると閉じられます。 サーバーのバックグラウンド モニターを停止します。
275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行275 デフォルト 切断します。 場合 モニター モニター.停止します。 end @connected = false #現在の CMAP 仕様では、プールがほとんど使用できない必要があります : サーバーが不明な場合(または切断されている場合)。 # ただし、未処理の操作は引き続き完了する必要があります。 # とその接続は、次のようにプールにチェックインする必要があります アプリケーションは必要ありません。 このクリーンアップ要件により、次はできません: プールを閉じて、ここで nil に設定します。これは次に再作成されます サーバーが検出された時間。 pool_internal&.クリア true end |
force_load_ balancer は? = true | false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このサーバーが強制的にロード バランサーであるかどうかを返します。
130 131 132 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行130 デフォルト force_load_Balancer? [:connect] == :load_ ユーザー分散 end |
#hand_auth_failure。 =オブジェクト
認証失敗の処理。
524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行524 デフォルト pipeline_auth_failure. ノードの数 ヘルプ mongo::エラー::SocketTimeoutError # クラスターは遅い可能性があるため、中断しないでください 発生 ヘルプ mongo::エラー::SocketError, 認証::許可されていない => e # 非タイムアウト ネットワーク エラーまたは 認証エラーの場合は、プールをクリアして をマークします # トポロジーは不明です 不明です。( 生成: e.生成, service_id: e.service_id, stop_push_monitor: true, ) 発生 end |
#handstake_failure。 =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ハンドシェイクの失敗を処理します。
501 502 503 504 505 506 507 508 509 510 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行501 デフォルト handschema_failure. ノードの数 ヘルプ mongo::エラー::SocketError, mongo::エラー::SocketTimeoutError => e 不明です。( 生成: e.生成, service_id: e.service_id, stop_push_monitor: true, ) 発生 end |
# heartbeat_frequency =オブジェクト別名: heartbeat_frequency_seconds
159 160 161 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行159 デフォルト heartbeat_frequency クラスター.heartbeat_Interval end |
詳しくは、 を 検査しstring ます
サーバー検査の結果がかなり出力されるようになりました。
355 356 357 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行355 デフォルト 検査する " #< Mongo::Server:0 x #{ object_id } address = { address .host } } : # {dress .port } } #{ status } > " end |
# last_scan =時間 | nil
last_scan サーバースキャンが最後に完了した時刻を返します。サーバーがまだスキャンされていない場合は nil を返します。
138 139 140 141 142 143 144 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行138 デフォルト last_scan 場合 説明 & & !説明.config.空の場合 説明.last_update_time else @last_scan end end |
# last_scan_mongotime =浮動小数点数 | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
last_scan_mongotime が最後にサーバースキャンで完了した単調な時間を返します。サーバーがまだスキャンされていない場合は nil を返します。
149 150 151 152 153 154 155 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行149 デフォルト last_scan_mongotime 場合 説明 & & !説明.config.空の場合 説明.last_update_monotime else @last_scan_mongotime end end |
#matches_tag_set?(tag_set) ⇒ true, false
提供された タグ がサーバーの タグのサブセット であるかどうかを判断します。
461 462 463 464 465 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行461 デフォルト matches_tag_set?(tag_set) tag_set.キー.すべて? 行う |k| [k] & & [k] == tag_set[k] end end |
#next_ connection_id =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
680 681 682 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行680 デフォルト 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-v 2.19 /lib/mongo/server.rb', 行424 デフォルト プール 場合 不明な場合 発生 エラー::ServerNotUsable, address end @Pool_lock.同期 行う ops = 接続されていますか? ? : .merge(MongoDB_io: false) @Pool ||= 接続プール.新着情報(自己, ops).タップ 行う |プール| プール.ready end end end |
プール_内部 = Server::ConnectionPool | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このサーバーの接続プールを取得するための内部ドライバー メソッド。
pool
とは異なり、 pool_internal
ではプールがまだ存在しない場合、作成されません。
445 446 447 448 449 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行445 デフォルト pool_internal @Pool_lock.同期 行う @Pool end end |
# public_opening_event = Object
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
サーバーを開くイベントを公開します。
340 341 342 343 344 345 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行340 デフォルト public_opening_event public_sdump_event( モニタリング::SERVER_OPENING, モニタリング::イベント::ServerOnce.新着情報(address, クラスター.トポロジー) ) end |
#再接続します。 = true
サーバー モニターを再起動します。
475 476 477 478 479 480 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行475 デフォルト 再接続します。 場合 [:monitoring_io] != false モニター.再起動します。 end @connected = true end |
再試行_読み取りの回数 =ブール値
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
サーバーが最新の読み取り再試行をサポートしているかどうか。
543 544 545 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行543 デフォルト retry_reads? !!(機能.errors_enabled? & & logical_session_timeout) end |
retry_writes? = true 、 false
再試行可能な書き込みは、サーバー バージョン3.6 + とシャーディングされたクラスターまたはレプリカセットでのみ使用できます。
このメソッドの一部の条件は、負荷分散されたトポロジーに対して に対して false を自動的に返します。 このメソッドの条件は常に true である必要があります。負荷分散されたトポロジーは MongoDB 5.0 + でのみ使用でき、スタンドアロンのトポロジーでは使用できないためです。 したがって、再試行書込みが有効になっていると仮定できます。
このサーバーに送信された書き込みを再試行します。
564 565 566 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行564 デフォルト retry_writes? !!(機能.errors_enabled? & & logical_session_timeout & & !スタンドアロン) || load_ balancer? end |
# start_monitoring =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
サーバーの監視を開始します。
サーバーがクラスターに含まれるまでの監視を遅延させて、クラスターにサーバーを追加するためにドライバーによって内部的に使用されます。
330 331 332 333 334 335 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行330 デフォルト start_monitoring public_opening_event 場合 [:monitoring_io] != false モニター.実行します。 end end |
#status ⇒ String
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
サーバーの状態を表す string(例: プライマリ)。
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-v 2.19 /lib/mongo/server.rb', 行362 デフォルト 状態 ケース 次の場合: load_ balancer? 'LB' 次の場合: プライマリ? プライマリ 次の場合: セカンダリか 「セカンダリ」 次の場合: スタンドアロン 'STANDALONE' 次の場合: アービタ 'ARBITER' 次の場合: ghost? 'GHOST' 次の場合: その他の場合 「その他の 」 次の場合: mongos? 'MONGOS' 次の場合: 不明な場合 「 UNKNOWN 」 else Summary メソッドはデバッグによく使用されるため、次は発生しないです: : 予想される型のいずれにも一致しない場合の例外 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-v 2.19 /lib/mongo/server.rb', 行393 デフォルト 概要 状態 = 自己.状態 || '' 場合 replica_set_name 状態 += " replica_set= #{ replica_set_name } " end ただし、 モニター&.実行中 状態 += " NO-MONITORING" end 場合 @Pool 状態 += " Pool= #{ @group . Summary } " end address_bit = 場合 address " #{アドレス.ホスト} : #{アドレス.ポート} " else 'nil' end " #< サーバー アドレス= #{ address_bit } #{ status } > " end |
#不明です。 (オプション = {}) =オブジェクト
サーバーを不明としてマークし、関連する 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-v 2.19 /lib/mongo/server.rb', 行592 デフォルト 不明です。( = {}) プール = pool_internal 場合 load_ balancer? クライアントが負荷分散されたトポロジーにある場合、サーバー(1 つと # のみ)がロード バランサーとして起動し、ロード バランサーとして起動します。 は、無期限に 個のロード バランサーを指定します。 そのため、不明とはマークされていません。 # ただし、このメソッドはサーバーの接続プールもクリアします 後者が不明とマークされ、この部分が実行する必要がある場合は# サーバーがロード バランサーである場合は、 #。 # ロード バランサー サーバーにはサービス ID がない場合も可能です。 #例えば、への成功した接続がまだない場合は、 このサーバーはしますが、次の場合にはサーバーを不明にマークできます このような接続の数は、確立の途中で失敗しました。 場合 service_id = [:service_id] プール&.切断します。(service_id: service_id) end return end 場合 [: 生成] & & [: 生成] < プール&.生成 return end 場合 [:toplog_version] & & 説明.topic & & ![:toplog_version].gt?(説明.topic) 次に return end 場合 [:stop_push_monitor] モニター&.stop_push_monitor. end SDAM フローでは、インプレースなしでサーバー上の説明が更新されます 必要に応じて 個のミューテーションを使用し、SDAM 移行を呼び出します。 config = {} 場合 [:service_id] config[' serviceId '] = [:service_id] end 場合 [:toplog_version] config['topologyVersion'] = [:toplog_version] end new_description = 説明.新着情報(address, config, load_Balancer: load_ balancer?, force_load_Balancer: [:connect] == :load_ ユーザー分散, ) クラスター.run_sam_flow(説明, new_description, ) end |
# update_description (description) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
645 646 647 648 649 650 651 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行645 デフォルト update_description(説明) プール = pool_internal 場合 プール & & !説明.不明な場合 プール.ready end @description = 説明 end |
#update_last_scan ⇒ Object
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
685 686 687 688 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行685 デフォルト update_last_scan @last_scan = 時間.になりました @last_scan_mongotime = Utils.MongoDB_time end |
# with_ connection ( connection_ global_id: nil, & ブロック) =オブジェクト
接続を使用してコード ブロックを実行します。このブロックはサーバーのプールからチェックアウトされ、その後チェックインされます。
493 494 495 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行493 デフォルト with_ connection(connection_ global_id: nil, &ブロック) プール.with_ connection(connection_ global_id: connection_ global_id, &ブロック) end |