大量のデータを可能な限り迅速かつ確実にインポートするコードを作成しようとしています。スレッドを使用すると、ローカルマシンで作成したインポートコードを大幅に高速化できましたが、リモートサーバーで実行すると、WCFに問題があるようです...
2つのWCFサービス実装があります:Service1とService2。
基本的にこれはワークフローです:
Parallel.ForEach(objectData.Tables[0].Rows.Cast<DataRow>(), dataRow =>
{
...
Service1.ImportObjectFirstPart(ObjectToEnter);
...
Service2.ImportObjectSecondPart(ObjectToEnter);
}
Service1の呼び出しには約3秒かかり、service2の呼び出しにはリモートとローカルの両方で約7秒かかります。ただし、私のローカルマシンでは、service2への呼び出しは約20回のservice1呼び出しの後に開始されます。サーバーでは、ほとんどすべてのservice1呼び出しが、最初のservice2呼び出しが開始される前に終了しました。(両方のサービスはPerCallとして実装されます)。
サービスを呼び出すコードは、しばらくの間予想どおり99%のCPUを使用し、その後クロールが遅くなり、自分で終了する必要があります。何がうまくいかない可能性があるか考えていますか?
ありがとう、