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

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

Overview

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

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

以来

  • 2.5.0

クラスメソッドの概要を折りたたむ

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

コンストラクターの詳細

#initialize(cluster) ⇒ SessionPool

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

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

例:

SessionPool.new(cluster)

パラメーター:

  • クラスター Mongo::Cluster

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

以来

  • 2.5.0



52
53
54
55
56
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/session/session_group.rb', 行52

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

クラスメソッドの詳細

create (クラスター) =オブジェクト

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

セッション プールを作成します。

例:

SessionPool.create(cluster)

パラメーター:

  • クラスター Mongo::Cluster

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

以来

  • 2.5.0



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 の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

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

例:

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

pool.checkin(session)

パラメーター:

以来

  • 2.5.0



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

#checkoutServerSession

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

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

例:

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

pool.checkout

次の値を返します。

以来

  • 2.5.0



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 コマンドをサーバーに送信して、プール内のすべてのセッションを終了します。

例:

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

pool.end_sessions

以来

  • 2.5.0



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: サーバー.options[:server_api],
    })
    op.実行する(サーバー, context: context)
  end
ヘルプ mongo::エラー, エラー::AuthError
end

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

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

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

例:

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

session_pool.inspect

次の値を返します。

  • ( string )

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

以来

  • 2.5.0



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