具体来说,问题是写一个这样的方法:
int maybeRead(InputStream in, long timeout)
Run Code Online (Sandbox Code Playgroud)
如果数据在'timeout'毫秒内可用,则返回值与in.read()相同,否则为-2.在方法返回之前,任何生成的线程都必须退出.
为了避免参数,这里的主题是java.io.InputStream,由Sun(任何Java版本)记录.请注意,这并不像看起来那么简单.以下是Sun的文档直接支持的一些事实.
in.read()方法可能是不可中断的.
将InputStream包装在Reader或InterruptibleChannel中没有帮助,因为所有这些类都可以调用InputStream的方法.如果可以使用这些类,则可以编写一个直接在InputStream上执行相同逻辑的解决方案.
in.available()返回0总是可以接受的.
in.close()方法可能会阻塞或不执行任何操作.
没有通用的方法来杀死另一个线程.
我file_get_contents()在循环中使用该方法调用一系列链接.每个链接可能需要15分钟以上才能处理.现在,我担心PHP是否file_get_contents()有超时期限?
如果是,它将超时通话并转到下一个链接.如果没有事先完成,我不想打电话给下一个链接.
那么,请告诉我是否file_get_contents()有超时期限.包含的文件file_get_contents()设置set_time_limit()为零(无限制).
我正在收集网站列表的统计数据,为了简单起见,我正在使用它的请求.这是我的代码:
data=[]
websites=['http://google.com', 'http://bbc.co.uk']
for w in websites:
r= requests.get(w, verify=False)
data.append( (r.url, len(r.content), r.elapsed.total_seconds(), str([(l.status_code, l.url) for l in r.history]), str(r.headers.items()), str(r.cookies.items())) )
Run Code Online (Sandbox Code Playgroud)
现在,我希望requests.get在10秒后超时,这样循环就不会卡住.
这个问题之前也引起了人们的兴趣,但没有一个答案是清晰的.我将在此给予一些赏金以获得一个很好的答案.
我听说也许不使用请求是一个好主意,但那么我应该如何获得请求提供的好东西.(元组中的那些)
在我的本地开发Ubuntu框中,我使用MySQL和phpmyadmin来处理数据库.
每当phpmyadmin闲置1440秒(24分钟)时,会话就会到期.我失去了我的位置,必须登录并重新开始.
我尝试改变$cfg['LoginCookieValidity'] = 3600 * 9;内部,config.inc.php但它仍然在1440秒内超时.
我重新启动了所有内容并清除了浏览器缓存(Firefox历史记录 - >清除最近的历史记录 - >缓存 - >所有内容).
我不确定为什么增加的超时不会生效.我究竟做错了什么?
据我所知,没有办法知道它特别是发生了超时.我不是在寻找合适的地方,还是我错过了更大的东西?
string baseAddress = "http://localhost:8080/";
var client = new HttpClient()
{
BaseAddress = new Uri(baseAddress),
Timeout = TimeSpan.FromMilliseconds(1)
};
try
{
var s = client.GetAsync("").Result;
}
catch(Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.InnerException.Message);
}
Run Code Online (Sandbox Code Playgroud)
返回:
发生了一个或多个错误.
任务被取消了.
我有一个控制台应用程序,我想让用户x秒响应提示.如果在一段时间后没有输入,程序逻辑应该继续.我们假设超时意味着空响应.
接近这个的最直接的方法是什么?
如果URL连接超过5秒,我想返回false - 使用Java可以实现这一点吗?这是我用来检查URL是否有效的代码
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
Run Code Online (Sandbox Code Playgroud) 如果我有一个已设置的活动超时运行var t = setTimeout("dosomething()", 5000),
反正有暂停和恢复吗?
timeout ×10
c# ×2
java ×2
.net ×1
asp.net ×1
asp.net-2.0 ×1
console ×1
django ×1
inputstream ×1
io ×1
javascript ×1
linux ×1
logout ×1
mysql ×1
php ×1
phpmyadmin ×1
python ×1
session ×1
shell ×1
url ×1