1

データベースには3万人のユーザーがいて、それぞれに指定された電話番号があります。電話番号ごとに、ユーザーの情報を取得するWebサービスを呼び出します。多くのユーザーがWebサービスに表示されないため、nullを受信しますが、どのユーザーが表示されるかはわかりません。また、新しいユーザーが表示されることもあります。Webサービスはリアルタイムで更新されるため、新しい結果は数分ごとに表示されます。応答がnullでなく、受信したファイルが前回受信したものと同じでない場合は、受信したXMLファイルからPDFドキュメントを作成します。

Webサービスの呼び出しは、次の擬似コードを使用して.aspxサイトを開始するスケジュールされたタスクによって開始されます。

Foreach phonenumber {
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("webservice/phonenumber");

using (StreamReader reader = new StreamReader(webResponse.GetResponseStream()))
    {
        makePdf();
    }
}

もちろん、問題はリクエストが永遠にかかることです。30kユーザーの場合、約7時間かかります。非同期Webサービス呼び出しを調べてみましたが、何も機能しませんでした。誰かが私を正しい方向に向けることができますか(可能であれば)、またはこれについてどうすればよいか教えてもらえますか?

ありがとう

4

2 に答える 2

0

タイムスタンプパラメータを受け入れ、そのタイムスタンプ以降に変更されたユーザーのリスト(または配列)を返すメソッドをサービスが実装できないのはなぜですか。そうすれば、それらのユーザーに対してのみリクエストを送信できるはずです。

于 2012-05-30T08:56:35.953 に答える
0

最初に、時間が Web サービスにあるのか、PDF 作成にあるのかを確認する必要があります。Web サービスにある場合は、インデックスなどがないかどうかを確認してください。Web サービスを改善するために、同時に複数の電話番号を取得することができます。問題が PDF の作成にある場合は、PDF の作成を改善する方法を見つけてください。現時点では、PDF を作成するためにどのツールを使用しているかは明確ではありません。

于 2012-05-29T08:08:10.033 に答える