1. その他の開発課題

パイプラインプロセッサを同時に稼働させる

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

非同期モードを有効にすることで複数のパイプラインプロセッサを同時に動作させることができます。これにより、各プロセッサを別々のタスクで呼び出すことができます。これにより、Sitecoreを一から起動する際のパフォーマンスが向上します。

!警告この機能は実験的なものであり、本番環境での使用は禁止されています。使用前に、ご自身の環境や設定で徹底的にテストすることを強くお勧めします。この機能は主に、開発者コミュニティからテストインストールでの動作に関するフィードバックを得るために実装されています。

Initializeパイプラインには非同期モード機能のみを使用する必要があります。このパイプラインの複数のプロセッサは独立して呼び出せるため、同時に動作することに適しています。

非同期モード機能は、カスタムプロセッサやカスタム設定で使用すると動作が予測不可能になるため、デフォルトで無効化されています。

非同期プロセッサモードの有効化

InitializeパイプラインプロセッサにRunMode属性を追加することで、この機能を有効にすることができます。この属性がない場合は、プロセッサはデフォルトの値であるSyncを使用します。

RunMode属性は、例えばSitecore.Experimental.Async.Initialization.Pipeline.config.exampleファイルに示されているように、別のパッチファイルに追加することを強く推奨します。パッチファイルを使うことで、非同期モードを迅速かつ簡単に有効または無効できます。

この機能が有効になると、以下の方法で各プロセッサを呼び出すことができます:

モード

概要

同期

デフォルトモードです。プロセッサはメインスレッドで動作します。

非同期終了

パイプラインは別のタスクでプロセッサを呼び出します。パイプラインが完了するとタスクは終了します。

非同期

パイプラインは別のタスクでプロセッサを呼び出します。タスクは次のWaitAsyncプロセッサが呼び出された時か、パイプラインが完了した時点で終了します。

待てたまらない

パイプラインは、現在のプロセッサより先に開始されたすべての非同期プロセッサが実行されるのを待ち、その後メインスレッド内の現在のプロセッサを呼び出します。

セットアップ、設定、負荷によって、プロセッサに最適なRunMode設定が変わります。したがって、この機能の設定方法について一般的な推奨はできません。

パイプラインの各プロセッサは、設定で指定された順序で動作します。パイプラインが別のタスクでプロセッサを呼び出した場合、パイプラインは自動的にタスクを作成します。

!注パイプライン引数はスレッドセーフではないため、同じパイプライン引数データを共有・変更するすべてのプロセッサをSyncモードで実行しなければなりません。

この記事を改善するための提案がある場合は、 お知らせください!