1

WCFWebサービスからの戻りデータで問題が発生したコードを確認しています。現在、サービスはオブジェクトのリストを作成し、それらを(レコードのJSONとして)シリアル化し、シリアル化されたリスト全体をネットワーク上で返します。明らかに、多くのデータがある場合、ユーザーはクォータ制限の問題に遭遇します。

サービスが一度に1つのアイテムを返すように変更することを検討しています。これにより、ループで一連のリクエストが送信され、完了するまで一度に1つのオブジェクトがリストに追加されます。

明らかに、シナリオ1では、大量のデータを返し、クォータに達する可能性のあるサービスに1つのリクエストを送信しています。他のシナリオでは、クォータに達することはありませんが、リクエスト元のアプリは、個別のリクエストのストリームでデータアイテムの後にデータアイテムをリクエストします。

説明のために、さまざまなアイテムタイプのアイテムのリストがあり、それらのタイプはさまざまな価格帯で提供されます。アプリは、多数のアイテム、そのアイテムを希望する顧客、顧客が要求するアイテムのタイプと価格を集約したい場合があり、それらはおそらく70アイテムであり、5〜80人の顧客がそれぞれ平均2種類の製品を要求します。各1つの価格。

極端な場合に平均を取ると、1つの完全なジョブで7000の個別の(非常に小さい)データ要求が発生する可能性があります。問題ありますか?要求された顧客のタイプと価格をバンドルできるように少しパッケージ化することは可能ですが、それでも一度に数千の要求になる可能性があります。

単一の巨大なデータストリームを使用したほうがよいでしょうか?または数千の小さいもの?

4

1 に答える 1

2

シナリオに最適なサイズのリターンを使用する方が良いでしょう:)リクエストのオーバーヘッドに多少依存します。一般に、Web サービスとの間のやりとりが少なければ少ないほど良いです。

面白い答えなので、問題は次のとおりです。おそらく、リクエストが特定の数のアイテムを要求し、応答が結果に「n of m」を返す、ある種のページングシステムを使用するのが最適です。そうすれば、リクエストの数とレスポンスのサイズを調整して、状況に応じて最適なパフォーマンスを発揮できます。

于 2010-11-19T13:45:49.097 に答える