POST REST APIを使用して一部のデータを保存するために.net HTTPClientを使用しています。このAPIのペイロードサイズは約10 MBです。私はチャンクで自分のデータを分割し、各チャンクに対してこのPOST APIを呼び出す。私は、ほとんどのアプローチに関して質問をしています:HttpClient POSTを並列に実行する
私はHTTPClientの単一の静的インスタンスを作成する予定であり、アプリケーション全体で同じインスタンスを使用します。私のアプローチは何ですか?
これらのチャンクPOSTコールはすべて、(TASKSを使用して)呼び出すことができます。いずれかのタスクが失敗した場合、残りのタスクを停止する方法はありますか?私はいくつかのサンプルコードを探しています。
_factory = new TaskFactory(); _factory.StartNew(() => //Call to async POST API using HttpClient ).ContinueWith((response) => { if (!response.IsFaulted) { //Do something } else { this._logger.Error("log the error"); } });
たぶん、あなたは偽/ trueに設定ブール変数。他のタスクは、その変数をチェックし、必要に応じて停止することができます。 – SpiderPig
取り消しトークンで行うこともできます。次のコード例はhttps://msdn.microsoft.com/en-us/library/dd321955(v=vs.110).aspxです。また、HTTPClientにはすべての保留中の要求を取り消す方法があります。 https://msdn.microsoft.com/en-us/library/system.net.http.httpclient.cancelpendingrequests(v=vs.118).aspx – SpiderPig