目前我有这段代码:
public bool checkIfDown(string URL)
{
try
{
//Creating the HttpWebRequest
HttpWebRequest request = WebRequest.Create("http://www." + URL) as HttpWebRequest;
//Setting the Request method HEAD, you can also use GET too.
request.Method = "HEAD";
request.Timeout = 1000;
//Getting the Web Response.
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
//Returns TRUE if the Status code == 200
return (response.StatusCode == HttpStatusCode.OK);
}
catch
{
//Any exception will returns false.
return false;
}
}
检查域是向上/向下,但我的问题是响应通常需要超过10秒才能进入catch部分。
例如,我的string domain
是sample123121212.com,该函数应该返回false但是花费的时间超过10秒。
我想要的是在至少2秒的短时间内返回false
,因为我需要处理至少 100 domains
。
有关如何执行此操作的任何建议吗?
答案 0 :(得分:1)
根据this回答,将属性Proxy
设置为null
可以显着缩短响应时间。
尝试以下方法:
request.Proxy = null;
在致电GetResponse()
此外,您可以将属性ReadWriteTimeout
设置为特定值(2000毫秒?),以确保您可以限制读取和写入流所需的时间。
答案 1 :(得分:0)
我使用的方法来自{{3}}。
update myTable
set var1 = var2
where exists (select 1
from (select value1, value2, var1, var2,
ROW_NUMBER() OVER (PARTITION BY value1 ORDER BY value1 desc) as rn
from mytable
where var1 is null
) x
where mytable.value1 in (x.value1, x.value2, x.var1, x.var2) and
rn <= 10
);