クラス: Mongo::Session::SessionPool Private

継承:
オブジェクト
  • オブジェクト
すべて表示
定義:
lib/mongo/session/session_Pool.rb

Overview

このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。

サーバー セッションのプール。

以来

  • 2.5.0

インスタンス メソッドの概要を折りたたむ

コンストラクターの詳細

#initialize(cluster) ⇒ SessionPool

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

セッション プールを初期化します。

例:

SessionPool.new(cluster)

パラメーター:

  • クラスター Mongo::Cluster

    このセッション プールに関連付けられるクラスター。

以来

  • 2.5.0



34
35
36
37
38
# ファイル 'lib/mongo/session/session_Pool.rb', 行 34

デフォルト 初期化(クラスター)
  @queue = []
  @mutex = ミューテックス.新着情報
  @cluster = クラスター
end

インスタンス メソッドの詳細

チェックイン(セッション) =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

プールにサーバー セッションをチェックインします。

例:

セッションをチェックインします。

pool.checkin(session)

パラメーター:

次の値が発生します。

  • (ArgumentError)

以来

  • 2.5.0



79
80
81
82
83
84
85
86
# ファイル 'lib/mongo/session/session_Pool.rb', 行 79

デフォルト checkin(セッション)
  発生 ArgumentError, セッションは nil にはできません 場合 セッション.nil?

  @mutex.同期 行う
    prune!
    @queue.unshift(セッション) 場合 return_to_queue?(セッション)
  end
end

#checkoutServerSession

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

プールからサーバー セッションをチェックアウトします。

例:

セッションをチェックアウトします。

pool.checkout

次の値を返します。

以来

  • 2.5.0



60
61
62
63
64
65
66
67
68
69
# ファイル 'lib/mongo/session/session_Pool.rb', 行 60

デフォルト チェックアウト
  @mutex.同期 行う
    ループ 行う
      return ServerSession.新着情報 場合 @queue.空の場合

      セッション = @queue.シフト
      return セッション ただし、 near_to_expire?(セッション)
    end
  end
end

# end_sessions =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

endSessions コマンドをサーバーに送信して、プール内のすべてのセッションを終了します。

例:

すべてのセッションを終了します。

pool.end_sessions

以来

  • 2.5.0



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# ファイル 'lib/mongo/session/session_Pool.rb', 行 94

デフォルト end_sessions
  まで @queue.空の場合
    サーバー = ServerSelector.得る(モード: :primary_preferred).[select_server](@cluster)
    op = 操作::コマンド.新着情報(
      セレクター: {
        endSessions: @queue.シフト(10_000).map(&:session_id),
      },
      db_name: Database::管理者
    )
    context = 操作::Context.新着情報(次のオプションがあります。 {
                                       server_api: サーバー.options[:server_api],
                                     })
    op.実行する(サーバー, context: context)
  end
ヘルプ mongo::エラー, エラー::AuthError
end

詳しくは、 を 検査しstring ます

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

検査で使用するための書式設定された string を取得します。

例:

セッション プール オブジェクトを調べます。

session_pool.inspect

次の値を返します。

  • ( string )

    セッション プールの検査。

以来

  • 2.5.0



48
49
50
# ファイル 'lib/mongo/session/session_Pool.rb', 行 48

デフォルト 検査する
  " #< Mongo::Session::SessionPool: 0 x #{ object_id } current_size= #{ @queue . size } > "
end