Давайте предположим, что у меня есть база данных, управляющая миллионами документов, которые хранятся на сервере WebDav или SMB, который не поддерживает получение документов в больших объемах. Учитывая список (возможно, всех) идентификаторов документов, как мне загрузить соответствующие документы как можно быстрее?
Итерации по списку и последовательная их загрузка слишком медленны. 2 варианта, которые я вижу, - это потоки и asyn c загрузки.
Моя интуиция говорит, что asyn c программирование должно быть предпочтительнее потоков, потому что я просто жду ввода-вывода на стороне клиента. Но я довольно новичок в программировании asyn c и не знаю, как это сделать. Я предполагаю, что перебор всего списка и отправка асинхронного запроса на загрузку c потенциально может привести к слишком большому количеству запросов за очень короткое время, что приведет к отклонению запросов. Так, как я дросселирую это? Есть ли лучший способ сделать это?