SaaS データ書き出しのパフォーマンスを向上

マルチスレッドデータ書き出しモード​では、フィード データをバッチに分割し、同時に処理することで、書き出しプロセスが高速化されます。

開発者やシステムインテグレーターは、デフォルトのシングルスレッドモードではなく、マルチスレッドデータエクスポートモードを使用することで、パフォーマンスを向上させることができます。 シングルスレッドモードでは、フィード送信プロセスの並列化はありません。 さらに、デフォルトの制限が設定されているため、すべてのクライアントは1つのスレッドのみを使用するように制限されています。 ほとんどの場合、設定をカスタマイズする必要はありません。

マルチスレッドモードを使用する際の考慮事項

データ書き出しサービスを使用する場合は、正確な同期を確保しながらパフォーマンスを最適化する必要があります。
Adobeでは、データ取り込みにデフォルト設定を使用することをお勧めします。これは、通常、Commerce マーチャントの同期要件を満たしています。 ただし、カスタマイズによって処理時間が短縮される場合があります。

データ書き出し設定をカスタマイズするかどうかを決定する際には、次の重要な要素を考慮してください。

  • 初期同期 – 製品数を評価し、デフォルト設定に基づいて​ データ量と送信時間を見積もる。 Commerce サービスをオンボーディングした後、この最初のデータ同期を待つことはできますか?

  • 新しいストアビューまたはWeb サイトの追加 – 本番稼働後に同じ商品数のストアビューまたはWeb サイトを追加する場合は、データ量と送信時間を見積もります。 デフォルト設定で同期時間を許容できるか、マルチスレッド処理が必要かどうかを判断します。

  • 定期的なインポート – 価格の更新や在庫状況の変更など、定期的なインポートを想定します。 これらの更新が、許容できる時間枠内に適用できるか、より迅速な処理が必要かどうかを評価します。

  • 商品の重量 – 商品が軽量か重いかを考慮します。 商品の説明や属性によって商品サイズが大きくなった場合は、それに応じてバッチサイズを調整します。

データ量の見積もりや同期時間の見積もりなど、入念な計画を立てることで、カスタマイズの必要性をなくすことができます。 これらの見積もりに基づいてフィード取り込み操作をスケジュールし、最適な結果を達成します。

NOTE
Adobeでは、マルチスレッド処理を使用する場合は注意することをお勧めします。 マルチスレッドを設定してパフォーマンスを高速化すると、データ取り込み中にシステムが悪用されるのを防ぐために、含まれているAdobe Commerce Services ガードレールをトリガーできます。 また、これらのガードレールにより、システムに負荷がかかる可能性のある同期変更のトリガーをユーザーが制限することもできます。 ガードレールがトリガーされると、リクエストはブロックされ、システムは429個のエラーを返します。 これらのエラーが発生した場合は、設定を調整し、サポートチケットを送信してサポートを受けてください。

マルチスレッドの設定

マルチスレッドモードは、すべての同期方法でサポートされています。完全同期、部分同期、および失敗した項目の同期です。 マルチスレッドを設定するには、同期中に使用するスレッド数とバッチサイズを指定します。

  • thread-countは、プロセス エンティティに対してアクティブ化されたスレッドの数です。 既定のthread-count1です。
  • batch-sizeは、1回のイテレーションで処理されるエンティティの数です。 デフォルトのbatch-sizeは、価格フィードを除くすべてのフィードの100 レコードです。 価格フィードの場合、デフォルト値は500 レコードです。

マルチスレッドを一時的なオプションとして設定するには、再同期コマンドを実行するか、マルチスレッド設定をAdobe Commerce アプリケーション設定に追加します。

NOTE
SaaS データ書き出しのパフォーマンスと、消費者側でクライアントに定義されたレート制限を一致させる必要があります。

実行時のマルチスレッドの設定

コマンドラインから完全同期コマンドを実行する場合は、thread-countおよびbatch-size オプションをCLI コマンドに追加して、マルチスレッド処理を指定します。

bin/magento saas:resync --feed=products --thread-count=2 --batch-size=200

コマンドラインで指定されたオプションは、Adobe Commerce アプリケーション config.php ファイルで指定されたデータ書き出し設定を上書きします。

Commerce設定にマルチスレッドを追加する

マルチスレッドを使用してすべてのデータ書き出し操作を処理するには、システムインテグレーターまたは開発者は、Commerce アプリケーション設定の各フィードのスレッド数とバッチサイズを変更できます。

これらの変更は、設定ファイル システム セクション app/etc/config.phpにカスタム値を追加することで適用できます。

例:商品と価格のマルチスレッドの設定

<?php
return [
    'system' => [
        'default' => [
            'commerce_data_export' => [
                'feeds' => [
                    'products' => [
                        'batch_size' => 100,
                        'thread_count' => 2,
                    ],
                    'prices' => [
                        'batch_size' => 400,
                        'thread_count' => 4,
                    ]
                ]
            ],
//   ...
recommendation-more-help
84c95778-e795-4ef1-8b7e-54d73e45e22d