データ アクション キャッシュのオプション
この記事では、Dynamics 365 Commerce でサポートされるデータ アクション キャッシュ オプションの概要を示します。
Dynamics 365 Commerce オンライン ソフトウェア開発キット (SDK) は、アプリケーション レベルでのエンティティ キャッシュをサポートしています。これにより、データ アクション応答のキャッシュによって表示パフォーマンスが向上し、サーバー負荷が軽減されます。 詳細については、データ アクションの概要を参照してください。
データ アクションをキャッシュする
データ アクションは、そのアクションの入力に基づいて、要求またはアプリケーション キャッシュのいずれかにデータを保存することができます。 IActionInput
の dataCacheType プロパティにより、基礎となるアクションのランタイムを有効にし、この決定をアクションの代理にすることができます。 既定では、アクションの応答は要求キャッシュに入れられます。
export class FullProductInput implements IActionInput {
public productId: number;
public channelId: number;
public ProductDetailsCriteria: ProductDetailsCriteria;
constructor(productId: number | string, channelId: number, criteria: ProductDetailsCriteria) {
this.productId = typeof productId === 'string' ? parseInt(productId, 10) : productId;
this.channelId = channelId;
this.ProductDetailsCriteria = criteria;
}
public getCacheKey = () => `${this.productId.toString()}-${this.channelId.toString()}-${this.ProductDetailsCriteria}`;
public getCacheObjectType = () => 'FullProduct';
public dataCacheType = (): CacheType => 'request';
}
サポートされるキャッシュの種類
次の種類のキャッシュがサポートされ、dataCacheType プロパティに設定することができます。
要求 : アクション入力は、要求のライフ サイクルのエンティティをキャッシュします。 (同じ要求内で) 同じ cacheKey を持つ後続のすべてのデータ アクション入力は、要求キャッシュから提供されます。
アプリケーション: アクション入力は、アプリケーションのライフ サイクルのエンティティをキャッシュします (キャッシュ設定で定義されている Time to Refresh (TTR) および Time to Live (TTL) に従う)。 同じ cacheKey を持つ後続のすべてのデータ アクション入力は、アプリケーション キャッシュから提供されます。
インスタンス: インスタンスは、カテゴリ階層など、要求を行って他のデータ アクションからの情報を抽出せず、主に集計データ アクションに使用される特殊な種類のキャッシュ設定です。 このようなデータ アクションは、サーバーとクライアントで個別に実行されます。 インスタンスが指定されていない場合、そのような集計データ アクションには重複データが含まれることがあります。
なし: 要求キャッシュをスキップまたはバイパスするために使用します。 キャッシュの種類が「なし」のアクションでは、キャッシュ レイヤーは完全にスキップされます。
キャッシュの設定
キャッシュの設定は、\src\settings\cache-settings.json ファイルを使用して構成することができます。 次の例は、cache-settings.json ファイルの形式を示しています。
{
"checkPeriodInSeconds": 120,
"ttlInSeconds": {
"entity-with-ttl": 4,
"category": 60
},
"ttrInSeconds": {
"entity-with-ttr": 2
}
}
詳細については、データ アクションのキャッシュ設定を参照してください。
checkPeriodInSeconds
この設定は、時間間隔 (秒) を表します。この時間間隔により、SDK はアプリケーション キャッシュ上でパスし、キャッシュから TTL 期限切れの項目を調整します。 既定値は 600 秒です。
ttlInSeconds - TTL (Time to Live)
この設定は、エンティティがアプリケーション キャッシュに維持される期間を示しています。 この値は、アプリケーション レベルで、またはエンティティごとに構成されます。 既定値は 600 秒です。
ttrInSeconds - TTR (Time to Refresh)
TTR は、キャッシュ値がアプリケーション キャッシュに保持されるが、キャッシュ データを更新するために新しい呼び出しを行うという意味で、アクション ランタイムにデータを最新の状態に保たせます。 予期しないエラーのイベントにおいて、キャッシュ内のデータを返す選択をすることができます。 既定値は 60 秒です。
defaultTTLInSeconds
この設定は、すべてのキャッシュ項目の既定の Time to Live (秒) を示しています。 既定値は 600 秒です。
defaultTTRInSeconds
この設定は、すべてのキャッシュ項目の既定の更新時間 (秒) を示しています。 既定値は 60 秒です。