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