我知道如何在cURL中设置超时但我想提醒用户请求超时.
我创建了一个ajax脚本,允许用户从各个保险站点请求数据并聚合到列表中.如果任何保险站点在一定时间内未能响应,我想提醒用户当前该公司的当前报价不可用.
cURL是否返回任何信号表示超时?
我有超时问题,这些是详细信息:
我的绑定配置如下所示:
<netTcpBinding>
<binding name="WindowsServerOverTcp"
maxReceivedMessageSize="10000000"
maxBufferSize="10000000"
maxBufferPoolSize="10000000"
closeTimeout="00:00:03"
openTimeout="00:00:03"
sendTimeout="00:00:03"
receiveTimeout="00:00:03">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<security mode="None">
</security>
</binding>
</netTcpBinding>
Run Code Online (Sandbox Code Playgroud)
我正在向服务器发送一条消息,我知道该服务器已关闭,因此连接应该在我的app.config中规定的3秒后超时,但由于某种原因它需要20-30秒.
抛出EndPointNotFoundException时,这是我得到的信息:
System.ServiceModel.EndPointNotFoundException:无法连接到net.tcp://10.0.0.82:4466/MegaMatcherWcf.连接尝试持续了00:00:03的时间跨度.TCP错误代码10060:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应10.0.0.82:4466
如果我在打开机器时尝试相同的测试,但没有正在运行的监听软件,我会得到预期的行为,3秒后连接超时.如果机器关闭,为什么需要30秒,然后告诉我需要3秒钟?
我有以下用Objective-C编写的代码,用于将数据写入套接字.服务器在Ubuntu上运行node.js:
NSString *url = @"anIPAddress";
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)url, 9000, &readStream, &writeStream);
self.inputStream = (NSInputStream *)readStream;
self.outputStream = (NSOutputStream *)writeStream;
[self.inputStream setDelegate:self];
[self.outputStream setDelegate:self];
[self.inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[self.outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[self.inputStream open];
[self.outputStream open];
Run Code Online (Sandbox Code Playgroud)
我能够连接到服务器并发送信息.但是我注意到几分钟后连接超时(我想5分钟左右?).我怎样才能保持这种联系?我知道有一个断开连接,因为如果我连接到终端下的服务器,同样的事情发生了,我必须保持该连接存活.我想我的代码中也发生了同样的事情.谢谢你的帮助!
我必须在一个线程中执行一个长的进程操作,并继续将结果返回给一个函数.这是我的代码:
Task<ProductEventArgs>.Factory.StartNew(() =>
{
try
{
// long operation which return new ProductEventArgs with a list of product
}
catch (Exception e)
{
return new ProductEventArgs() { E = e };
}
}).ContinueWith((x) => handleResult(x.Result), TaskScheduler.FromCurrentSynchronizationContext());
Run Code Online (Sandbox Code Playgroud)
问题实际上我没有超时.我想放一个计时器,以便返回这样的东西:
new ProductEventArgs() { E = new Exception("timeout") };
Run Code Online (Sandbox Code Playgroud)
如果达到超时.不能使用await/async.非常感谢 !
我正在使用SignalR.But有一个关于超时的问题.
几分钟后超时消失,无法正常工作.
如何在SignalR 2.0中设置超时连接?
如果在请求期间发生错误,Guzzle会抛出异常.不幸的是,似乎没有特定于超时的错误 - 这对我来说很重要,因为我知道那些可能会偶尔发生.我想重试相应的请求,并且需要能够判断是否由于超时而发生错误.
来自文档:
// Timeout if a server does not return a response in 3.14 seconds.
$client->get('/delay/5', ['timeout' => 3.14]);
// PHP Fatal error: Uncaught exception 'GuzzleHttp\Exception\RequestException'
Run Code Online (Sandbox Code Playgroud)
该RequestException在其信息message属性:
"cURL error 28: Operation timed out after 3114 milliseconds with 0 bytes received"
Run Code Online (Sandbox Code Playgroud)
所以我可以评估消息模式,但这感觉有点不对,因为这些消息将来很容易改变.
使用guzzle 4时是否有更好/更稳定的方法来检查超时?
我可以HttpClient直接设置我的对象的超时,HttpClient.Timeout但我最近读到了关于WebRequestHandler该类的衍生物HttpClientHandler.
WebRequestHandler有ReadWriteTimeout房产.当与旁边一起使用时,这将如何影响请求的操作HttpClient.Timeout?
我返回事务承诺,应该在停止函数之前等待事务完成.交易执行得很好,但承诺似乎永远不会解决.
我在Firebase控制台中看到此功能在60秒后总是超时.
const functions = require('firebase-functions');
const admin = require("firebase-admin");
const db = admin.database();
export let countFollowers = functions.database.ref('followers/{followee}/{follower}').onWrite(event => {
const followee = event.params.followee;
let path = `posts/${followee}/cnt_foll`;
const countRef = db.ref(path);
let out = countRef.transaction(current => {
if (event.data.exists() && !event.data.previous.exists()) {
return (parseInt(current) || 0) + 1;
} else if (!event.data.exists() && event.data.previous.exists()) {
return (parseInt(current) || 0) - 1;
}
});
return out;
});
Run Code Online (Sandbox Code Playgroud)
编辑:
我用以下"黑客"解决了这个问题,我自己创建了一个承诺,因为无论.transaction返回的是什么都没有用:
return new Promise(function(resolve, reject) {
countRef.transaction(current => { …Run Code Online (Sandbox Code Playgroud) javascript timeout firebase firebase-realtime-database google-cloud-functions
我有一个 spring MVC 端点返回StreamingResponseBody,因此我可以流式传输大文件而不是将其保留在内存中。
该请求可能需要一段时间才能下载,因此超时。我可以通过设置来修复它spring.mvc.async.request-timeout=360000,但我不希望此设置全局应用于所有端点。
有没有办法仅为该特定端点设置请求超时?
我确实在 Spring-boot 中找到了Set timeout for certain async request,但我认为这不适用于我使用StreamingResponseBody.
我还发现Spring REST 端点在 30 秒后返回 StreamingResponseBody: AsyncRequestTimeoutException,这没有达到预期的效果。
我对 RestClient 响应返回有疑问
“StatusCode: 0,Content-Type: , Content-Length: )”,ErrorMessage 为“由于配置的 HttpClient.Timeout 已过 100 秒,请求被取消”。
尽管只有 170KB 的数据,但由于其最终优化不佳,该请求可能需要 5 分钟以上的时间。
var client = new RestClient(url);
RestRequest request = new RestRequest() { Method = Method.Get };
request.Timeout = 300000;
request.AddParameter("access_token", AccessToken);
request.AddParameter("start_date", StartDate.ToString("yyyy-MM-dd"));
request.AddParameter("end_date", EndDate.ToString("yyyy-MM-dd"));
request.AddParameter("offset", offset.ToString());
var response = await client.ExecuteAsync(request);
var responseWorkLoads = JObject.Parse(response.Content).SelectToken("worklogs");
Run Code Online (Sandbox Code Playgroud) timeout ×10
c# ×3
.net ×2
php ×2
asp.net ×1
asynchronous ×1
curl ×1
exception ×1
factory ×1
firebase ×1
guzzle ×1
ios5 ×1
java ×1
javascript ×1
keep-alive ×1
objective-c ×1
restsharp ×1
signalr ×1
sockets ×1
spring ×1
spring-mvc ×1
task ×1
vb.net ×1
wcf ×1