Можно ли с помощью Alamofire создать несколько отдельных очередей операций (или чего-то подобного)?

Поэтому мне нужно сделать около 300+ вызовов API, и я не хочу передавать их все сразу и загружать сервер. Итак, я подумал о том, чтобы, возможно, выполнять около 5 асинхронных вызовов за раз. Из того, что я прочитал, здесь очереди операций звучат потрясающе и очень полезны. Из ответа на этот вопрос асинхронный пример создает очередь операций и передает ее в вызов. Я предполагаю, что если бы я сделал что-то подобное, я мог бы просто создать 5 отдельных очередей и направить свои звонки в эти 5 очередей (я предполагаю, что на самом деле не пробовал это, так как я хотел бы использовать Alamofire). Возможно ли что-то подобное с Alamofire?


person boidkan    schedule 30.09.2014    source источник


Ответы (1)


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

person mattt    schedule 02.10.2014
comment
Итак, вы говорите, что если я попытаюсь сделать 300, это произойдет примерно в то же время, что и базовая система загрузки URL-адресов, чтобы убедиться, что она не затопляет сервер? - person boidkan; 02.10.2014
comment
Система загрузки URL может гарантировать только то, что клиент не откусит больше, чем он может проглотить. Что касается сервера, 300 - это не очень большое количество одновременных запросов для обработки. - person mattt; 02.10.2014
comment
Да, наверное, я не объяснил. Таким образом, это 300+ на устройство, а не всего 300+ (и на самом деле теперь я думаю, что с моим текущим кодом это ближе к 600). Так что с большим количеством устройств и сервером, который не может обрабатывать большой трафик, в моем случае это было бы проблемой. Я не особо беспокоюсь о стороне клиента. - person boidkan; 02.10.2014
comment
Нет, я понял это. Если ваш сервер действительно неспособен обрабатывать реальную нагрузку, я бы порекомендовал вам потратить время на рефакторинг, чтобы объединить и уменьшить количество сделанных вызовов. - person mattt; 03.10.2014