SaaS データ書き出しのパフォーマンスを向上
マルチスレッドデータ書き出しモードでは、フィード データをバッチに分割し、同時に処理することで、書き出しプロセスが高速化されます。
開発者やシステムインテグレーターは、デフォルトのシングルスレッドモードではなく、マルチスレッドデータエクスポートモードを使用することで、パフォーマンスを向上させることができます。 シングルスレッドモードでは、フィード送信プロセスの並列化はありません。 さらに、デフォルトの制限が設定されているため、すべてのクライアントは1つのスレッドのみを使用するように制限されています。 ほとんどの場合、設定をカスタマイズする必要はありません。
マルチスレッドモードを使用する際の考慮事項
データ書き出しサービスを使用する場合は、正確な同期を確保しながらパフォーマンスを最適化する必要があります。
Adobeでは、データ取り込みにデフォルト設定を使用することをお勧めします。これは、通常、Commerce マーチャントの同期要件を満たしています。 ただし、カスタマイズによって処理時間が短縮される場合があります。
データ書き出し設定をカスタマイズするかどうかを決定する際には、次の重要な要素を考慮してください。
-
初期同期 – 製品数を評価し、デフォルト設定に基づいて データ量と送信時間を見積もる。 Commerce サービスをオンボーディングした後、この最初のデータ同期を待つことはできますか?
-
新しいストアビューまたはWeb サイトの追加 – 本番稼働後に同じ商品数のストアビューまたはWeb サイトを追加する場合は、データ量と送信時間を見積もります。 デフォルト設定で同期時間を許容できるか、マルチスレッド処理が必要かどうかを判断します。
-
定期的なインポート – 価格の更新や在庫状況の変更など、定期的なインポートを想定します。 これらの更新が、許容できる時間枠内に適用できるか、より迅速な処理が必要かどうかを評価します。
-
商品の重量 – 商品が軽量か重いかを考慮します。 商品の説明や属性によって商品サイズが大きくなった場合は、それに応じてバッチサイズを調整します。
データ量の見積もりや同期時間の見積もりなど、入念な計画を立てることで、カスタマイズの必要性をなくすことができます。 これらの見積もりに基づいてフィード取り込み操作をスケジュールし、最適な結果を達成します。
マルチスレッドの設定
マルチスレッドモードは、すべての同期方法でサポートされています。完全同期、部分同期、および失敗した項目の同期です。 マルチスレッドを設定するには、同期中に使用するスレッド数とバッチサイズを指定します。
thread-countは、プロセス エンティティに対してアクティブ化されたスレッドの数です。 既定のthread-countは1です。batch-sizeは、1回のイテレーションで処理されるエンティティの数です。 デフォルトのbatch-sizeは、価格フィードを除くすべてのフィードの100レコードです。 価格フィードの場合、デフォルト値は500レコードです。
マルチスレッドを一時的なオプションとして設定するには、再同期コマンドを実行するか、マルチスレッド設定をAdobe Commerce アプリケーション設定に追加します。
実行時のマルチスレッドの設定
コマンドラインから完全同期コマンドを実行する場合は、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,
]
]
],
// ...