2016-04-19 22 views
0

すべてダイナミックCRM Web APIバルク

私はCRMシステムにデータを送信できる(HTTP POST要求によるWeb APIを使用して)、C#プログラムを用意しています。しかし、私が実行しなければならない要求の量は、予想通り、完了するのに膨大な時間がかかり、毎日10000のオーダである。私は一度に大量のデータを(一度に10000個のタスクオブジェクトを)送信することができる「一括」機能を検討してきました。 1つの理由や別の理由で、私はこのような機能が実装されているのを見つけることができません。最も近いのは"batch requests"ですが、提供されている例では、複数のリクエストが単一のhttp投稿要求にラップされているようですこれを行う唯一の方法でない限り、そのような単一のリクエストに10000件のリクエストをラップするための最良のソリューション

したがって、一括処理機能がありますか、

答えて

0

あなたのリクエストはすべて順番に処理されるため、バッチ処理はあまり役に立ちません。その量のデータでは、同時実行性/並列性/マルチスレッド化を実装する必要があります。私のプロジェクトの統合担当者は、本質的にプロデューサ/コンシューマパターンを使用して平均して約100回/秒の操作を達成することができました。彼は自動的に成長するCRM接続のプールを使用し、1つの要求が処理を完了するとすぐに、接続がプールに戻されます。

Microsoft Premierフィールドエンジニアリングチームは、PFE Core Library for Dynamics CRMをCodePlexに発行しています。ライブラリにはParallelOrganizationServiceProxyクラスがあり、複雑な並行処理が必要です。ここに例があります:

public void ParallelUpdate(List<Entity> targets) 
{ 
    try 
    { 
     this.Manager.ParallelProxy.Update(targets); 
    } 
    catch (AggregateException ae) 
    { 
     // Handle exceptions 
    } 
} 
+0

こんにちはPolsh、返信ありがとうございます!うーん..誰かがREST APIの一括機能をリリースするとマイクロソフトは同意しないだろうと期待していただろうか?私はこれまでの "古い"ライブラリや "サードパーティ"のライブラリを避けようとしてきましたが、マルチスレッディングが最良の選択肢であるように、タスクを実行しても実行可能ではないと思います。この1つについては、おなじみですか? https://msdn.microsoft.com/en-us/library/jj863631.aspx – Slavi

+0

ExecuteMultipleはWebAPIのバッチ処理と同等です。また、別の大きな欠点もあります。プラットフォームは、任意の時点で2つのExecuteMultiple要求のみを処理します。 :/ – Polshgiant

+0

ちなみに、バッチリクエストは一度にすべて送信されるのではなく、別々のリクエストがcrm側で実行されるため、別々の接続の待ち時間が短縮されますか?そうでなければ私はそれのアイデアを見ていないのですか? – Slavi

関連する問題