目前的一个网站如下:http://www.cha66.com/
比如在这里查询单号 :http://www.cha66.com/ems_kuaidi_danhao_chaxun.aspx
网站处理查询请求过程如下:
ajax请求。
ajax.request("/ajax/kuaidi_api.aspx",formData);
这个kuaidi_api.aspx页面处理所有不同类型的快递查询。kuaidi_api.aspx页面中调用写在app_code中的一个类pagespider。由pagespider类抓取网页信息。然后kuaidi_api.aspx把信息返回来.客户端显示。
我朋友在用此套源码。开始没有问题。但后在访问量大后出问题了。
比如这个人正在查 ems 中( http://www.cha66.com/ems_kuaidi_danhao_chaxun.aspx)
那么其它人则无法查询 ems 或其它快递了。好像阻塞起了。1.asp.net是单线程的?
2.是因为写在app_code中的原因吗?那把这个pagespider写到dll中去?
3.那么把pagespider的代码提取出来。放到每个页面中去。能解决吗?(我猜不能。等会儿得试一下)。但这样一来。不好维护了。改一个地儿改全部。哪位有好办法啊?现在朋友的站每天有7/8000的ip的样子才这点我的程序就抗不住了。不能丢这面子。。我在网上找到的资料就是异步。哪位朋友再多给点资料?
比如在这里查询单号 :http://www.cha66.com/ems_kuaidi_danhao_chaxun.aspx
网站处理查询请求过程如下:
ajax请求。
ajax.request("/ajax/kuaidi_api.aspx",formData);
这个kuaidi_api.aspx页面处理所有不同类型的快递查询。kuaidi_api.aspx页面中调用写在app_code中的一个类pagespider。由pagespider类抓取网页信息。然后kuaidi_api.aspx把信息返回来.客户端显示。
我朋友在用此套源码。开始没有问题。但后在访问量大后出问题了。
比如这个人正在查 ems 中( http://www.cha66.com/ems_kuaidi_danhao_chaxun.aspx)
那么其它人则无法查询 ems 或其它快递了。好像阻塞起了。1.asp.net是单线程的?
2.是因为写在app_code中的原因吗?那把这个pagespider写到dll中去?
3.那么把pagespider的代码提取出来。放到每个页面中去。能解决吗?(我猜不能。等会儿得试一下)。但这样一来。不好维护了。改一个地儿改全部。哪位有好办法啊?现在朋友的站每天有7/8000的ip的样子才这点我的程序就抗不住了。不能丢这面子。。我在网上找到的资料就是异步。哪位朋友再多给点资料?
处理比较大量的数据,使用多个线程处理
优化业务逻辑,多用户怎么处理
高并发使用缓存,负载均衡
相关 http://topic.csdn.net/u/20100106/16/f426b5f7-55da-44f0-adba-c67803730f49.html
代码太长了。因为网址太多。
类似pagespier.getcontent(string url)
kuaidi_api.aspx页面无非就是调用这个getcontent然后返回。没得其它啥了。流程就是这样。
代码也就是这个样子。
不知道是不是pagespider是静态类的原因。所有请求都用同一个类?等会去试试
spier.cs
/// <summary>
/// Summary description for Spider
/// </summary>
public static class Spider
{
public static void a()
{
Thread.Sleep(20000);
}
public static void b()
{
}
}test.asp
public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["t"] != null)
{
Spider.a();
}
else
{
Spider.b();
}
Response.Write("a");
}
}代码就是这样。
测试网址为:http://www.cha55.org/test.aspx?t=x与http://www.cha55.org/test.aspx
目的很明显。但是在服务器上。只要打开有?t=x的网页。test.aspx只有等有?t=x的网页打开完了才显示。
但在本地却不是这样。实在搞不懂了。