クラス: Mongoid::Contextual::Mongo::DocumentsLoader Private
- 継承:
-
オブジェクト
- オブジェクト
- Mongoid::Contextual::Mongo::DocumentsLoader
- 次による拡張機能。
- 転送可能
- 次のことが含まれます。
- 関連付け::EagerLoadable
- 定義:
- lib/mongoid/contextual/mongo/documents_loader.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
指定された条件のドキュメントをロードします。
インスタンス属性の概要を折りたたむ
-
#criteria ⇒ Mongoid::Criteria
private
ロードするドキュメントを指定する基準。
クラスメソッドの概要を折りたたむ
-
。実行プログラム(name = Mongoid.async_query_executor) 詳しくは、 同時実行::ImmediateExecutor |同時実行::ThreadPoolExecutor
private
Mongoid 構成オプション に従って適切な実行プログラムを返します。
-
。 global_thread_Pool_async_query_executor =同時実行::ThreadPoolExecutor
private
async_query_executor 構成オプション が : global_thread_Pool に設定されている場合に使用する非同期実行プログラムを返します。
-
。 maximum_executor = 同時実行::ImmediateExecutor
private
async_query_executor 構成オプションが :immediat に設定されている場合に使用する同期実行プログラムを返します。
インスタンス メソッドの概要を折りたたむ
-
# execution = Array[ Mongoid ::Document]<Mongoid::Document>
private
データベースから '@criteria' で指定されたレコードをロードし、`@klass` タイプの Mongoid ドキュメントに変換します。
-
#初期化(view、klas、条件、実行プログラム:セルフ.クラス.executor) ドキュメントローダー
コンストラクター
private
ドキュメント ローダー インスタンスをインスタンス化し、提供されたエグゼキュータを使用してその実行を直ちにスケジュールします。
-
保留中 = true | false
private
ローダーが保留状態かどうかを false または true を返します。
-
番号 の開始 = true | false
private
ローダーが起動状態かどうかを false または true を返します。
-
#非スケジュール= オブジェクト
private
ローダーを未スケジュールとしてマークします。
関連::EagerLoadableに含まれるメソッド
#EAger_load 、 # Dataer_loadable か。 、 #preload
コンストラクターの詳細
#初期化(view、klas、条件、実行プログラム:セルフ.クラス.executor) ドキュメントローダー
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ドキュメント ローダー インスタンスをインスタンス化し、提供されたエグゼキュータを使用してその実行を直ちにスケジュールします。
89 90 91 92 93 94 95 96 97 98 |
# ファイル 'lib/mongoid/contextual/mongo/documents_loader.rb' 行89 デフォルト 初期化(表示, klass, 条件, 実行プログラム: 自己.クラス.実行プログラム) @view = 表示 @klass = klass @criteria = 条件 @mutex = ミューテックス.新着情報 @ State = :pending @feature = 同時実行::Promise.future_on(実行プログラム) 行う 始める & & 実行する end end |
インスタンス属性の詳細
#criteria ⇒ Mongoid::Criteria
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ロードするドキュメントを指定する基準を返します。 ここで公開されているのは、`関連付け::EagerLoadable` からの `reader_loadable?` メソッドで、これが利用可能であることが想定されているためです。
75 76 77 |
# ファイル 'lib/mongoid/contextual/mongo/documents_loader.rb' 行75 デフォルト 条件 @criteria end |
クラスメソッドの詳細
。実行プログラム(name = Mongoid.async_query_executor) 詳しくは、 同時実行::ImmediateExecutor |同時実行::ThreadPoolExecutor
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
Mongoid 構成オプション に従って適切な実行プログラムを返します。
61 62 63 64 65 66 67 68 69 70 |
# ファイル 'lib/mongoid/contextual/mongo/documents_loader.rb' 行61 デフォルト 自己.実行プログラム(name = Mongoid.async_query_executor) ケース name.to_sym 次の場合: : 直接 minimum_executor 次の場合: : global_thread_Pool global_thread_Pool_async_query_executor else 発生 Errors::InvalidQueryExecutor.新着情報(name) end end |
。 global_thread_Pool_async_query_executor =同時実行::ThreadPoolExecutor
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
async_query_executor 構成オプション が : global_thread_Pool に設定されている場合に使用する非同期実行プログラムを返します。 この実行プログラムは、スレッド プールを使用してバックグラウンド スレッドで操作を実行します。
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# ファイル 'lib/mongoid/contextual/mongo/documents_loader.rb' 行32 デフォルト 自己.global_thread_Pool_async_query_executor create_Pool = Proc.新着情報 行う |同時実行性| 同時実行::ThreadPoolExecutor.新着情報( min_threads: 0, max_threads: 同時実行性, max_queue: 同時実行性 * 4, フォールバック_ポリシー: :caler_runs ) end 同時実行性 = Mongoid.global_executor_concurrency || 4 @@ global_thread_Pool_async_query_executor ||= create_Pool.を呼び出す(同時実行性) 場合 @@ global_thread_Pool_async_query_executor.max_Length != 同時実行性 old_Pool = @@ global_thread_Pool_async_query_executor @@ global_thread_Pool_async_query_executor = create_Pool.を呼び出す(同時実行性) old_Pool.shutdown end @@ global_thread_Pool_async_query_executor end |
。 maximum_executor =同時実行::ImmediateExecutor
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
async_query_executor 構成オプションが :immediat に設定されている場合に使用する同期実行プログラムを返します。 この実行プログラムは、必要に応じてブロックしながら、現在のスレッド上のすべての操作を実行します。
22 23 24 |
# ファイル 'lib/mongoid/contextual/mongo/documents_loader.rb' 行22 デフォルト 自己.minimum_executor @@immediate_executor ||= 同時実行::ImmediateExecutor.新着情報 end |
インスタンス メソッドの詳細
#実行= 配列< Mongoid ::Document >
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
データベースから '@criteria' で指定されたレコードをロードし、`@klass` タイプの Mongoid ドキュメントに変換します。
このメソッドは、ローダーの インスタンスを作成するときにスケジュールされたタスク(場合によっては非同期)によって呼び出されます。 ただし、呼び出し元スレッドへのロードをすぐに実行する必要がある場合は、このメソッドを直接呼び出すことができます。
このメソッドを呼び出しても、ローダーの状態は変更されません。
152 153 154 155 156 157 158 |
# ファイル 'lib/mongoid/contextual/mongo/documents_loader.rb' 行152 デフォルト 実行する ドキュメント = @view.map 行う |doc| 工場.from_db(@klass, doc, @criteria) end Bearer_load(ドキュメント) 場合 concern_loadable? ドキュメント end |
保留中 = true | false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ローダーが保留状態かどうかを false または true を返します。
保留状態とは、ローダーの実行がスケジュールされているが、まだ開始されていないことを意味します。
107 108 109 110 111 |
# ファイル 'lib/mongoid/contextual/mongo/documents_loader.rb' 行107 デフォルト 保留中? @mutex.同期 行う @ State == :pending end end |
番号 の開始 = true | false
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ローダーが起動状態かどうかを false または true を返します。
開始状態とは、ローダーの実行が開始されたことを意味します。 の実行が完了した後(成功または失敗)、ローダーはこの状態のままであることに注意してください。
121 122 123 124 125 |
# ファイル 'lib/mongoid/contextual/mongo/documents_loader.rb' 行121 デフォルト は、開始されましたか? @mutex.同期 行う @ State == :started end end |
#非スケジュール=オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ローダーを未スケジュールとしてマークします。
ローダーが非スケジュールとマークされている場合は実行されません。 ドキュメントをロードする唯一のオプションは、'execute' メソッドを直接呼び出すことです。
タスクの実行がすでに開始されている場合は、スケジュールを解除しても効果はありません。
134 135 136 137 138 |
# ファイル 'lib/mongoid/contextual/mongo/documents_loader.rb' 行134 デフォルト 非スケジュール @mutex.同期 行う @ State = :Canceled ただし、 @ State == :started end end |