クラス: Mongo::Server::ConnectionPool::GenerationManager Private

継承:
オブジェクト
  • オブジェクト
すべて表示
定義:
lib/mongo/サーバー/接続_プール/生成_manager.rb

Overview

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

以来

  • 2.0.0 、 2.9.0で大幅に書き換えられた

インスタンス属性の概要を折りたたむ

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

コンストラクターの詳細

#初期化(サーバー:) =生成管理者

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

生成管理 の新しいインスタンスを返します。

以来

  • 2.0.0 、 2.9.0で大幅に書き換えられた



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

以来

  • 2.0.0 、 2.9.0で大幅に書き換えられた



33
34
35
# ファイル 'lib/mongo/ サーバー/ connection_Pool/generate_manager.rb' の行 33

デフォルト サーバー
  @server
end

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

# bucket (service_id: nil) =オブジェクト

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

以来

  • 2.0.0 、 2.9.0で大幅に書き換えられた



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

以来

  • 2.0.0 、 2.9.0で大幅に書き換えられた



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

以来

  • 2.0.0 、 2.9.0で大幅に書き換えられた



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

以来

  • 2.0.0 、 2.9.0で大幅に書き換えられた



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

以来

  • 2.0.0 、 2.9.0で大幅に書き換えられた



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