クラス: 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



37
38
39
40
41
# ファイル 'lib/mongo/session/session_Pool.rb', 行 37

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

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

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

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

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

例:

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

pool.checkin(session)

パラメーター:

以来

  • 2.5.0



86
87
88
89
90
91
92
93
94
95
# ファイル 'lib/mongo/session/session_Pool.rb', 行 86

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

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

#checkoutServerSession

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

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

例:

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

pool.checkout

次の値を返します。

以来

  • 2.5.0



63
64
65
66
67
68
69
70
71
72
73
74
75
76
# ファイル 'lib/mongo/session/session_Pool.rb', 行 63

デフォルト チェックアウト
  @mutex.同期 行う
    ループ 行う
      場合 @queue.空の場合
        return ServerSession.新着情報
      else
        セッション = @queue.シフト
        ただし、 near_to_expire?(セッション)
          return セッション
        end
      end
    end
  end
end

# end_sessions =オブジェクト

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

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

例:

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

pool.end_sessions

以来

  • 2.5.0



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# ファイル 'lib/mongo/session/session_Pool.rb', 行 103

デフォルト 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



51
52
53
# ファイル 'lib/mongo/session/session_Pool.rb', 行 51

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