使用dispatch_group_async和不同的调度队列和调度组打开6个以上的并行NSURLConnection.sendSynchronousRequest时获取错误代码504 Gateway Timeout。
此错误不一致,大约有30%的时间发生。
当我将并行连接数减少到5时,不会发生此错误。
现在有人为什么会这样吗? NSURLConnection线程不安全吗?
答案 0 :(得分:1)
您正从服务器获取状态504。 NSURLConnection中的问题不在于此。这意味着NSURLConnection已与服务器通信,服务器并不高兴,并报告错误。
我认为服务器无法同时处理太多请求。如果许多不同的设备同时使用服务器,也可能会发生这种情况。
您需要能够处理任何错误以及适当返回的任何状态。在状态504的情况下,这只是服务器太忙的指示,正确的处理是在几秒钟后尝试相同的请求,并且通常不会同时尝试太多的请求。