2015-05-11 5 views
1

Получение кода ошибки 504 Тайм-аут шлюза при открытии более 6 параллельных NSURLConnection.sendSynchronousRequest с использованием dispatch_group_async и другой очереди отправки и диспетчерской группы.Получение кода ошибки 504 Тайм-аут шлюза при открытии более 6 параллельных потоков NSURLConnection.sendSynchronousRequest

  • Эта ошибка не согласуется и происходит примерно в 30% случаев.

  • Эта ошибка не происходит, когда я уменьшить количество параллельных соединений до 5.

Кто-нибудь теперь, почему это происходит? Не безопасна ли NSURLConnection?

ответ

1

Вы получаете статус 504 с сервера. Проблема не в NSURLConnection. Это означает, что NSURLConnection поговорил с сервером, сервер был недоволен и сообщил об этой ошибке.

Я думаю, что сервер не может обрабатывать слишком много одновременных запросов. Вероятно, это также произойдет, если многие устройства используют сервер одновременно.

Вы должны иметь возможность обрабатывать любую ошибку и любой статус, который возвращается соответствующим образом. В случае состояния 504, который является лишь показателем того, что сервер слишком занят, правильная обработка будет заключаться в том, чтобы попробовать один и тот же запрос несколько секунд спустя и вообще не пытаться слишком много запросов одновременно.