次の方法で共有


データ アクション キャッシュのオプション

この記事では、Dynamics 365 Commerce でサポートされるデータ アクション キャッシュ オプションの概要を示します。

Dynamics 365 Commerce オンライン ソフトウェア開発キット (SDK) は、アプリケーション レベルでのエンティティ キャッシュをサポートしています。これにより、データ アクション応答のキャッシュによって表示パフォーマンスが向上し、サーバー負荷が軽減されます。 詳細については、データ アクションの概要を参照してください。

データ アクションをキャッシュする

データ アクションは、そのアクションの入力に基づいて、要求またはアプリケーション キャッシュのいずれかにデータを保存することができます。 IActionInputdataCacheType プロパティにより、基礎となるアクションのランタイムを有効にし、この決定をアクションの代理にすることができます。 既定では、アクションの応答は要求キャッシュに入れられます。

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 秒です。

追加リソース

データ アクションの概要

モックを使用したデータ アクションのテスト

ページ読み込みデータ アクション

イベント ベースのデータ アクション

コア データ アクション

Retail Server API の呼び出し