私は、新しいASP.NET Web APIに基づいてWeb APIを作成しています。私は同時に複数のデータセットを提出する人々を扱う最良の方法を理解しようとしています。彼らが100,000のリクエストを持っているなら、彼らが一度に1,000を提出させることはいいでしょう。新しいASP.NET Web APIでは、「バッチ」リクエストをどのように設計するのですか?
はのは、私は私の連絡先コントローラに新しい連絡方法を作成しているとしましょう:
public string Put(Contact _contact)
{
//add new _contact to repository
repository.Add(_contact);
//return success
}
ユーザーが「バッチ」の新しい連絡先を提出することを可能にする適切な方法は何ですか?私は思っている:
public string BatchPut(IEnumerable<Contact> _contacts)
{
foreach (var contact in _contacts)
{
respository.Add(contact);
}
}
これは良い習慣ですか?これは連絡先のJSON配列でGETリクエストを解析しますか(正しく書式設定されていると仮定します)?
最後に、バッチリクエストに最も効果的に対応する方法に関するヒントを教えてください。 300人のうち4人が失敗したら?
ありがとうございます!
要求サイズ、ユーザー数、ユーザーのタイプ、データの品質、時間制限、およびデータベースの信頼性に関する保証は、サーバー上にありますか?これらは、利用可能な設計選択に影響しますか? – bloudraak
APIリクエストごとに1つのジョブを作成するAPIがあります。現時点では、APIは一度に1つのジョブしか取得していません。この制限は、200,000件もの要求を行う必要のある大規模なクライアントにとっては頭痛の種になっています。個々のAPI呼び出しはメッセージとしてAmazon SQSに入ります。したがって並行性は問題ではなく、大量の顧客にとっては頭痛の種です。ありがとう! –
ビジネスプロセスで非同期処理が可能ですか?たとえば、私が保険会社で働いていたときに、引用符を計算するためにキューに入れていたので、クライアントがデータを提出し、見積もりが作成されたときにポーリングする必要がありました。利用可能なリソースに応じて、これには2〜2分から30分の時間がかかりました。 – bloudraak