クラス: Mongo::Server::ConnectionPool::GenerationManager Private
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Server::ConnectionPool::GenerationManager
- 定義:
- lib/mongo/サーバー/接続_プール/生成_manager.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
インスタンス属性の概要を折りたたむ
- #サーバー~ オブジェクト readOnly private
インスタンス メソッドの概要を折りたたむ
- # bucket (service_id: nil) = オブジェクト private
- #生成(service_id: nil)= オブジェクト private
- # generate_unlocked (service_id: nil) = オブジェクト private
-
#初期化(サーバー:) = 生成管理者
コンストラクター
private
生成マネージャーの新しいインスタンス。
- # pipe_fds (service_id: nil) = オブジェクト private
- #remove_pipe_fds (生成、service_id: nil)= オブジェクト private
コンストラクターの詳細
#初期化(サーバー:) =生成管理者
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
生成管理 の新しいインスタンスを返します。
25 26 27 28 29 30 31 |
# ファイル 'lib/mongo/ サーバー/ connection_Pool/generate_manager.rb' の行 25 デフォルト 初期化(サーバー:) @map = ハッシュ.新着情報 { |ハッシュ, キー| ハッシュ[キー] = 1 } @pipe_fds = ハッシュ.新着情報 { |ハッシュ, キー| ハッシュ[キー] = { 1 => IO.パイプ } } @server = サーバー @lock = ミューテックス.新着情報 @sScheduled_for_close = [] end |
インスタンス属性の詳細
#サーバー=オブジェクト(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
33 34 35 |
# ファイル 'lib/mongo/ サーバー/ connection_Pool/generate_manager.rb' の行 33 デフォルト サーバー @server end |
インスタンス メソッドの詳細
# bucket (service_id: nil) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# ファイル 'lib/mongo/ サーバー/ connection_Pool/generate_manager.rb' の行 66 デフォルト は(service_id: nil) @lock.同期 行う close_all_sScheduled 場合 service_id gen = @map[service_id] += 1 @pipe_fds[service_id] ||= {} @pipe_fds[service_id][gen] = IO.パイプ else サービス ID が指定されていない場合、次の 2 つのいずれかが # が発生している # # 1 。 プールはロード バランサーではありません。次の場合のみ では、 nil service_id の生成を増やす必要があります。 # 2 。 プールはロードバランサーへのものであり、その場合、次が必要です # は、各サービスの生成を増加させます。 # マップ内のすべての値を増やすと、両方のタスクが実行されます。 @map.各 行う |k, v| gen = @map[k] += 1 @pipe_fds[service_id] ||= {} @pipe_fds[service_id][gen] = IO.パイプ end end end end |
#生成(service_id: nil)=オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
35 36 37 38 39 40 41 |
# ファイル 'lib/mongo/ サーバー/ connection_Pool/generate_manager.rb' の行 35 デフォルト 生成(service_id: nil) validate_service_id!(service_id) @lock.同期 行う @map[service_id] end end |
# generate_unlocked (service_id: nil) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
43 44 45 46 47 |
# ファイル 'lib/mongo/ サーバー/ connection_Pool/generate_manager.rb' の行 43 デフォルト generate_unlocked(service_id: nil) validate_service_id!(service_id) @map[service_id] end |
# pipe_fds (service_id: nil) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
49 50 51 |
# ファイル 'lib/mongo/ サーバー/ connection_Pool/generate_manager.rb' の行 49 デフォルト pipe_fds(service_id: nil) @pipe_fds[service_id][@map[service_id]] end |
#remove_pipe_fds (生成、service_id: nil)=オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
53 54 55 56 57 58 59 60 61 62 63 64 |
# ファイル 'lib/mongo/ サーバー/ connection_Pool/generate_manager.rb' の行 53 デフォルト 排除_パイプ_fds(生成, service_id: nil) validate_service_id!(service_id) R, w = @pipe_fds[service_id].削除(生成) w.閉じる パイプの読み取り終了を閉じるようにスケジュールします。 閉じることはできません # は、への Kernel#select 呼び出しを待機する必要があるためです。 パイプの一部が閉じていることを確認し、ソケットを確認します。 これ # はすべてソケットからの読み取りを試み、次を待機しているときに発生します: # して、再度準備します。 @sScheduled_for_close < R end |