大量のアイテムのパブリッシュ後にページのロード時間を減らす方法


解説

Sitecoreは、EventQueueテーブルを使用してSitecoreインスタンス間でイベントを共有します。それぞれのアイテムが変更されると、個別のイベントが作成されます。
Sitecore Publishing Serviceは、パブリッシュ操作のパフォーマンスを重視しているため、もしパブリッシュ ターゲットへのマニフェスト ステップ数がしきい値を超過している場合、パブリッシュの速度を改善するために、単一のイベントのエントリが全ての変更されたアイテムに対して作成されます。このイベントはSitecoreキャッシュをクリアし、検索インデックスを再構築することにより処理されます。
しかし、Sitecoreキャッシュをクリアすると、キャッシュが再度作成されるまで、ページの応答速度が著しく低下する可能性があります。

なお、本記事の内容は、Sitecore Publishing Service 2.0 Update-1 - 4.2.0およびPublishing Serviceモジュール9.1.0 - 9.3.0に適用されます。

解決策

Sitecoreキャッシュのクリアと検索インデックスの再構築を起動するイベントの頻繁な作成を防止するには、Sitecore.Publishing.Service.configファイルのremoteEventCacheClearingThreshold設定の値を増加させます。
例:

<param name="remoteEventCacheClearingThreshold">100000</param>

註:

ある時点において、キャッシュ エントリの削除と変更されたアイテムのインデックスの更新のコストが、完全なキャッシュのクリアとインデックスの再構築のコストを上回るようになります。
そのため、remoteEventCacheClearingThreshold設定の値を各々のソリューションで個別に調整する必要があります。多くの場合において、100000が調整の出発点に適しています。