# 並列実行

QV2QS は、設定可能なプロセス プールを使用して複数のプロジェクトを並行して変換します。

## ワーカー設定

デフォルトでは、QV2QSはマシンの論理CPUコア数に基づいて最適なワーカー数を自動検出します。デフォルト設定（`--batchWorkers 0`）では、コア数より1つ少ないワーカーが使用され、オーケストレータープロセスおよびオペレーティングシステム用に1つのコアが空けられます。

明示的なカウントでオーバーライドするには、`--batchWorkers N` を渡します:

```
QV2QS.exe --batchDir "C:\Projects" --outputDir C:\Output --batchWorkers 4 --unbuildOnly
```

指定されたワーカー数が利用可能なCPUコア数を超える場合、QV2QSは警告を出力します。コア数を超えてワーカーを1つ追加するごとに、約80 MBのメモリオーバーヘッドが発生しますが、ウォールクロック時間の改善はごくわずかです。

ローカル変換フェーズでは、プロセスプールを使用します。各ワーカーは個別のプロセスで実行されるため、変換処理を構成するXMLのパース、オブジェクトグラフの走査、およびJSON生成において、真のCPU並列処理が可能になります。1つのプロジェクトが失敗しても、残りのプロジェクトは継続されます。各ワーカープロセスは、プロジェクトの `logs/` サブフォルダーに個別のログファイルを書き込みます。

クラウド展開では、同じワーカー数のスレッド プールを使用します。すべてのローカル変換が完了すると、QV2QS は変換されたアプリを Qlik Cloud に並行してデプロイします。並列クラウド展開中はコンソール出力が簡略化されます — 出力の乱れを防ぐため、アニメーションスピナーは静的な進行状況行に置き換えられます。

## エラー処理

バッチモードでは、エラーが発生しても処理を継続します。変換中に1つのプロジェクトが失敗した場合、QV2QSはエラーを記録し、残りのプロジェクトの処理を続行します。失敗したプロジェクトは、エラーの説明とともにバッチサマリーに表示されます。バッチ終了コードは、すべてのプロジェクトが成功した場合は `0`、いずれかのプロジェクトが失敗した場合は `1` となります。

エラー分離はレポート生成にも適用されます。プロジェクトの変換には成功したもののExcelレポートの生成に失敗した場合でも、そのプロジェクトは成功としてカウントされます。レポートエラーは個別にログに記録されます。

クラウド展開の失敗は、同様に分離されます。1つのプロジェクトの展開に失敗しても、残りのプロジェクトの展開は続行されます。

## 詳細を見る

* [バッチスキャンの仕組み](https://help.qlik.com/ja-JP/migration/Content/Qv2qsMigration/batch-conversion/how-batch-scanning-works.htm)
* [バッチレポート](https://help.qlik.com/ja-JP/migration/Content/Qv2qsMigration/batch-conversion/batch-reporting.htm)
* [パフォーマンス ベンチマーク](https://help.qlik.com/ja-JP/migration/Content/Qv2qsMigration/batch-conversion/performance-benchmarks.htm)