Solr の再試行戦略の設定
Solr は、操作の初回実行が失敗した場合にその操作を再試行するように設定できます。これは、ネットワークの問題などの一時的なエラーが発生した場合、または Solr の可用性の問題がある場合に役立ちます。
再試行戦略を有効にする
使用する戦略は、Sitecore.ContentSearch.Solr.DefaultIndexConfiguration.config
ファイルの solrRetryer
セクションで設定します。
再試行戦略を有効にするには:
-
solrRetryer
ノードをオーバーライドする設定のインクルード ファイルを作成します。有効にできる戦略は、次の 3 種類です。
-
NoRetryRetryer
: デフォルトの戦略です。再試行は行いません。次のように設定します。RequestResponseshell<solrRetryer type="Sitecore.ContentSearch.SolrProvider.Availability.Retryer.NoRetryRetryer, Sitecore.ContentSearch.SolrProvider" singleInstance="true" />
-
FixedIntervalsRetryer
: 指定した一定の間隔で再試行を行います。たとえば次の設定では、Solr は (最初の試行に加えて) 3 回再試行します。最初の試行は 1 秒後、2 回目の試行は 2 秒後、3 回目の試行は 3 秒後です。
RequestResponseshell<solrRetryer type="Sitecore.ContentSearch.SolrProvider.Availability.Retryer.FixedIntervalsRetryer, Sitecore.ContentSearch.SolrProvider" singleInstance="true" > <sleepDurations hint="list:AddSleepDuration"> <interval>00:00:01</interval> <interval>00:00:02</interval> <interval>00:00:03</interval> </sleepDurations> </solrRetryer>
-
ExponentialRetryer
: 指数バックオフ アルゴリズムを使用して再試行を行います。この戦略は、次の方法で有効にして設定します。RequestResponseshell<solrRetryer type="Sitecore.ContentSearch.SolrProvider.Availability.Retryer.ExponentialRetryer, Sitecore.ContentSearch.SolrProvider" singleInstance="true"> <param desc="retryCount">3</param> <param desc="deltaBackoff">00:00:01</param> <param desc="maxBackoff">00:00:05</param> <param desc="minBackoff">00:00:01</param> </solrRetryer>
-
カスタムの再試行機能を作成する
適切な戦略がない場合は、カスタムの再試行機能を実装できます。
カスタムの再試行機能を作成するには:
-
Sitecore.ContentSearch.SolrProvider.Availability.Retryer.BaseRetryer
クラスを継承するクラスを作成します。 -
必要なメソッドを実装します。
-
Sitecore.ContentSearch.Solr.DefaultIndexConfiguration.config
ファイルのsolrRetryer
セクションで、カスタムの再試行機能を有効にします。