打开6个以上并行线程时获取错误代码504网关超时NSURLConnection.sendSynchronousRequest

时间:2015-05-11 18:00:15

标签: ios nsurlconnection http-status-code-504

使用dispatch_group_async和不同的调度队列和调度组打开6个以上的并行NSURLConnection.sendSynchronousRequest时获取错误代码504 Gateway Timeout。

  • 此错误不一致,大约有30%的时间发生。

  • 当我将并行连接数减少到5时,不会发生此错误。

现在有人为什么会这样吗? NSURLConnection线程不安全吗?

1 个答案:

答案 0 :(得分:1)

您正从服务器获取状态504。 NSURLConnection中的问题不在于此。这意味着NSURLConnection已与服务器通信,服务器并不高兴,并报告错误。

我认为服务器无法同时处理太多请求。如果许多不同的设备同时使用服务器,也可能会发生这种情况。

您需要能够处理任何错误以及适当返回的任何状态。在状态504的情况下,这只是服务器太忙的指示,正确的处理是在几秒钟后尝试相同的请求,并且通常不会同时尝试太多的请求。