モジュール: Mongo::Operation::Timed Private

次のドキュメントに含まれます。
OpMsgBase
定義:
lib/mongo/ 操作/shared/timed.rb

Overview

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

クライアント側の操作タイムアウト(COT)仕様で記述されるデフォルトのタイムアウト動作を持つ操作の動作を定義します。

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

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

# apply_reactive_timeouts_to (spec, connection) = ハッシュ

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

タイムアウトがアクティブ(現在のコンテキストによって定義され)、かつタイムアウトがまだ経過していない場合は、 :maxTimeMS を 指定に追加します。

パラメーター:

  • スペック ハッシュ

    変更する仕様

  • 接続 (接続)

    操作の実行に使用される接続

次の値を返します。

  • ハッシュ

    仕様



22
23
24
25
26
27
28
29
# ファイル 'lib/mongo/操作/shared/timed.rb' 行 22

デフォルト apply_reactive_timeouts_to(スペック, 接続)
  with_max_time(接続) 行う |max_time_second|
    return スペック 場合 max_time_second.nil?
    return スペック 場合 接続.説明.mongocryptd?

    スペック.タップ { スペック[:maxTimeMS] = (max_time_second * 1_000).to_i }
  end
end

# with_max_time (接続) = ハッシュ

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

残りのタイムアウト(秒単位)を計算し、それを関連付けられたブロックに渡すヘルパーメソッド。 タイムアウトが存在しない場合、 は nil を生成します。 タイムアウトが経過した場合、 はMongo::Error::TimeoutError を発生させます。

パラメーター:

  • 接続 (接続)

    操作の実行に使用される接続

次の値を返します。

  • ハッシュ

    ブロックにロックを解除した結果( ハッシュである必要があります)



40
41
42
43
44
45
46
47
48
49
# ファイル 'lib/mongo/操作/shared/timed.rb' 行 40

デフォルト with_max_time(接続)
  場合 context&.タイムアウト
    max_time_second = context.retention_timeout_second - 接続.サーバー.minimum_round_drop_time
    発生 mongo::エラー::TimeoutError 場合 max_time_second <= 0

    ノードの数 max_time_second
  else
    ノードの数 nil
  end
end