クラス: Mongo::Retryable::ReadWORKer Private
- 継承:
-
base Worker
- オブジェクト
- base Worker
- Mongo::Retryable::ReadWORKer
- 定義:
- lib/mongo/retryable/read_worker.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
読み取り操作の再試行に関するロジックを実装します。
インスタンス属性の概要
baseworkerから継承される属性
インスタンス メソッドの概要を折りたたむ
-
# read_with_one_retry (オプション = nil){{ ... } = 結果
private
ネットワークエラーが発生した場合、読み取り操作を 1 回の再試行で実行します。
-
# read_with_retry(セッション = nil、server_selector = nil、context = nil、開発ブロック)= 結果
private
再試行を使用して読み取り操作を実行します。
-
# read_with_retry_cursor(セッション、server_selector、ビュー、コンテキスト: nil、+Block)= カーソル
private
再試行を使用して、カーソルを返す読み取り操作を実行します。
base Workerから継承されたメソッド
コンストラクターの詳細
このクラスは、 Mongo::Retryable::BaseServerからコンストラクターを継承します。
インスタンス メソッドの詳細
# read_with_one_retry (オプション = nil){{ ... } =結果
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ソケット エラーで読み取り操作のみが再試行されます。
ネットワークエラーが発生した場合、読み取り操作を 1 回の再試行で実行します。
このメソッドは、ドライバーによって内部整理操作の一部に使用されます。 アプリケーション要求された読み取りでは、この方法ではなく read_with_retry を使用する必要があります。
153 154 155 156 157 158 159 160 161 |
ファイル 'lib/mongo/retryable/read_worker.rb' 行 153 デフォルト read_with_one_retry( = nil) ノードの数 ヘルプ *retryable_exceptions, エラー::PoolError => e 発生 e ただし、 e.write_retryable? = & & [:retry_message] log_retry(e, メッセージ: ) ノードの数 end |
# read_with_retry(セッション = nil、server_selector = nil、context = nil、開発ブロック)= 結果
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
再試行を使用して読み取り操作を実行します。
このメソッドは、指定されたサーバー セレクターのサーバー選択を実行し、指定された ブロックに中断します。これにより、最初のクエリ操作が実行され、その結果が返されます。 ブロックは、操作用に選択されたサーバーに渡されます。 ブロックが例外を発生させ、この例外が読み取り再試行可能なエラーに対応し、クライアントで読み取り再試行が有効になっている場合、このメソッドはサーバー選択を再度実行し、再度ブロックに中断します(別のサーバーが使用される可能性があります)。 ブロックが正常に返されると、ブロックの結果が返されます。
最近の再試行読み取りがオン(デフォルト)の場合、最初の読み取り操作は 1 回再試行されます。 レガシー再試行読み取りがオンになっている場合、 :max_read_retry クライアント設定に応じて最初の読み取り操作が 0 回以上再試行されます。デフォルトは1です。 読み取り再試行を無効にするには、 retry_reads: false を設定して最新の読み取り再試行をオフにし、クライアントで :max_read_retrys を0に設定します。
117 118 119 120 121 122 123 124 125 126 127 |
ファイル 'lib/mongo/retryable/read_worker.rb' 行 117 デフォルト read_with_retry(セッション = nil, server_selector = nil, context = nil, &ブロック) 場合 セッション.nil? & & server_selector.nil? delete_legacy_read_with_retry(&ブロック) elsif セッション&.retry_reads? latest_read_with_retry(セッション, server_selector, context, &ブロック) elsif クライアント.max_read_retry > 0 legacy_read_with_retry(セッション, server_selector, context, &ブロック) else read_Without_retry(セッション, server_selector, &ブロック) end end |
# read_with_retry_cursor(セッション、server_selector、ビュー、コンテキスト: nil、+Block)= カーソル
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
再試行を使用して、カーソルを返す読み取り操作を実行します。
このメソッドは、指定されたサーバー セレクターのサーバー選択を実行し、指定された ブロックに中断します。これにより、最初のクエリ操作が実行され、その結果が返されます。 ブロックは、操作用に選択されたサーバーに渡されます。 ブロックが例外を発生させ、この例外が読み取り再試行可能なエラーに対応し、クライアントで読み取り再試行が有効になっている場合、このメソッドはサーバー選択を再度実行し、再度ブロックに中断します(別のサーバーが使用される可能性があります)。 ブロックが正常に返された場合、ブロックの結果( Mongo::Operation::Result )を使用して、結果セットの Mongo::Cursor オブジェクトが構築されます。 次に、カーソルが返されます。
最近の再試行読み取りがオン(デフォルト)の場合、最初の読み取り操作は 1 回再試行されます。 レガシー再試行読み取りがオンになっている場合、 :max_read_retry クライアント設定に応じて最初の読み取り操作が 0 回以上再試行されます。デフォルトは1です。 読み取り再試行を無効にするには、 retry_reads: false を設定して最新の読み取り再試行をオフにし、クライアントで :max_read_retrys を0に設定します。
68 69 70 71 72 73 74 75 76 77 78 79 80 |
ファイル 'lib/mongo/retryable/read_worker.rb' 行 68 デフォルト read_with_retry_cursor(セッション, server_selector, 表示, context: nil, &ブロック) read_with_retry(セッション, server_selector, context) 行う |サーバー| 結果 = ノードの数 サーバー # Ruby- 2367 : これは更新され、クエリ キャッシュは次を可能にします: マルチバッチ結果を持つ # キャッシュ カーソル。 場合 クエリ キャッシュ.有効か & & !表示.コレクション.system_collection? CacheCursor.新着情報(表示, 結果, サーバー, セッション: セッション, context: context) else Cursor.新着情報(表示, 結果, サーバー, セッション: セッション, context: context) end end end |