当被问到太多请求时服务器超时是否可能?

时间:2015-07-22 13:07:31

标签: android http connection timeout server

我正在开发一个Android应用程序,它的工作流程必须处理一系列对远程服务器的请求(实际上只是一个网站 - 它用HTML响应)。我正在使用Volley和OkHttp。

让我们这样说:我有这样的事情:

private void refresh() {    
    for (Call call : listOfCalls) {
        addToQueue(call); // because of Volley mechanism, this also executes the request
    }
}

@Override
public void callback() {
    // I expect this method to be called listOfCalls.size() times
}

呼叫次数大约为10次,根据我的测试,它们的处理时间约为10-15毫秒。这意味着服务器必须处理来自同一客户端的每1/2毫秒1次呼叫。

当我处于调试模式时,一切都很好,我强制将呼叫单独发送,每1-2秒一次。但每当我试图同时突然发出一系列电话时,突然后端开始做,但只有一些电话,并且没有任何明显的模式,两个非常奇怪的事情:

  • 它只是超时(我设置了大约10秒的超时,所以这不是正常的行为)
  • 它提供了一个空内容:Content-Length: 0(我特意将内部缓存设置为null,因此它与此无关)。

请注意,即使我尝试仅执行每次通话之后的,前一个已完成(因此,如果它是callback(),则调用下一个请求队列,而refresh()只是第一个),我仍然遇到同样的问题。唯一改变的是它停止提供空体 - 这只是超时。

所以我的问题是:这个服务器是否有可能实现某种“控制”,这样每当同一个客户端在很短的时间内开始执行太多请求时,它就会开始以不常见的方式响应方式(即超时并提供Content-Length: 0)? 因此,唯一的解决方法实际上是在每次通话之间以任意“暂停” - “暂停”停止客户端?

0 个答案:

没有答案