クラス: Mongo::Session::SessionPool Private
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Session::SessionPool
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/session/session_Pool.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
サーバー セッションのプール。
クラスメソッドの概要を折りたたむ
-
。 create (クラスター) = オブジェクト
private
セッション プールを作成します。
インスタンス メソッドの概要を折りたたむ
-
チェックイン(セッション) = オブジェクト
private
プールにサーバー セッションをチェックインします。
-
#checkout ⇒ ServerSession
private
プールからサーバー セッションをチェックアウトします。
-
# end_sessions =オブジェクト
private
endSessions コマンドをサーバーに送信して、プール内のすべてのセッションを終了します。
-
#initialize(cluster) ⇒ SessionPool
コンストラクター
private
セッション プールを初期化します。
-
詳しくは、 を 検査し ますstring
private
検査で使用するための書式設定された string を取得します。
コンストラクターの詳細
#initialize(cluster) ⇒ SessionPool
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
セッション プールを初期化します。
52 53 54 55 56 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/session/session_group.rb', 行52 デフォルト 初期化(クラスター) @queue = [] @mutex = ミューテックス.新着情報 @cluster = クラスター end |
クラスメソッドの詳細
。 create (クラスター) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
セッション プールを作成します。
38 39 40 41 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/session/session_group.rb', 行38 デフォルト 自己.create(クラスター) プール = 新着情報(クラスター) クラスター.instance_variable_set(:@session_pool, プール) end |
インスタンス メソッドの詳細
チェックイン(セッション) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
プールにサーバー セッションをチェックインします。
101 102 103 104 105 106 107 108 109 110 111 112 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/session/session_group.rb', 行101 デフォルト checkin(セッション) 場合 セッション.nil? 発生 ArgumentError, のセッションは nil にはできません。 end @mutex.同期 行う prune! ただし、 near_to_expire?(セッション) @queue.unshift(セッション) end end end |
#checkout ⇒ ServerSession
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
プールからサーバー セッションをチェックアウトします。
78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/session/session_group.rb', 行78 デフォルト チェックアウト @mutex.同期 行う ループ 行う 場合 @queue.空の場合 return ServerSession.新着情報 else セッション = @queue.シフト ただし、 near_to_expire?(セッション) return セッション end end end end end |
# end_sessions =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
endSessions コマンドをサーバーに送信して、プール内のすべてのセッションを終了します。
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/session/session_group.rb', 行120 デフォルト end_sessions 一方 !@queue.空の場合 サーバー = ServerSelector.得る(モード: :primary_preferred).[select_server](@cluster) op = 操作::コマンド.新着情報( セレクター: { endSessions: @queue.シフト(10_000).map(&:session_id), }, db_name: Database::管理者, ) context = 操作::Context.新着情報(次のオプションがあります。 { server_api: サーバー.[:server_api], }) op.実行する(サーバー, context: context) end ヘルプ mongo::エラー, エラー::AuthError end |
詳しくは、 を 検査しstring ます
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
検査で使用するための書式設定された string を取得します。
66 67 68 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/session/session_group.rb', 行66 デフォルト 検査する " #< Mongo::Session::SessionPool: 0 x #{ object_id } current_size= #{ @queue . size } > " end |