在数据库中,我有30k用户,每个用户都有一个指定的电话号码。对于每个phonenumber,我将调用一个webservice,为用户提取一些信息。许多用户没有出现在webservice中,所以我只会收到null,但我不知道哪些用户和新用户可以不时出现。网络服务实时更新,因此每分钟都会有新的结果。 如果响应不为null,并且收到的文件与上次收到的文件不同,我将从收到的XML文件中创建PDF文档。
webservice调用由一个计划任务启动,该任务使用以下伪代码启动.aspx-site:
Foreach phonenumber {
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("webservice/phonenumber");
using (StreamReader reader = new StreamReader(webResponse.GetResponseStream()))
{
makePdf();
}
}
问题当然是请求永远需要。对于30k用户,大约需要7个小时。我曾尝试查看异步webservice调用,但无法正常工作。有人能指出我正确的方向 - 如果可能的话 - 或者告诉我应该如何解决这个问题?
由于
答案 0 :(得分:0)
首先,您应该检查时间是在网络服务中还是在PDF创建中。如果它在Web服务中,请检查您是否缺少索引等。要改进webserice,您可以同时获取多个phonenumbers。如果您的问题出在PDF创建中,请找到改进pdf创建的方法。目前还不清楚你用什么工具来创建pdf。
答案 1 :(得分:0)
为什么您的服务无法实现接受timestamp参数的方法,并返回自该时间戳以来更改的用户列表(或数组)。这样,您应该只能为这些用户发送请求。