Всегда писал скрипты без использования "вызова функции асинхронно", решил переделать один скрипт с использованием этой фичи. Два раза пересмотрел видос уважаемого разработчика на эту тему. Смысл скрипта: берутся из ресурса данные аккаунта, из файла берутся куки, берется юзерагент и из ресурса берется целевой урл и все это дело через параметры функции передается асинхронной функции, которая применяет куки и юзерагент от аккаунта к http клиенту, и в таком залогиненом переходит по урлу, который мы передали из ресурса в параметрах и все. Вот скрин структуры всей:
Первая траббла которая возникла, это БАС сначала подвис и стал заполнять очередь потоков, пока не кончились урлы в ресурсе, которых было около 100к всего. Кучу памяти забрал, если бы пару лямов я ему таким образом скормил, он бы на моем компе вылетел 100%. Без использования асинхронного вызова функции такая бешенная очередь потоков не создавалась в памяти, а в цикле While урлы брались из ресурса и по мере поступления решались до искончания ресурса. Я попытался сделать вложенный цикл для наполнения очереди потоков асинхронной функции 10к, после чего действие "Ждать завершение асинхронной функции" с параметром "[[THREAD_LIST]]" (как указанно в мануале будет ожидаться завершение всех потоков асинхронной функции), но БАС как будто бы этот флаг игнорирует, и продолжает идти на следующий круг и наполнять очередь потоков по кругу, тогда как потоки еще даже работать не начали, не то чтобы закончили работу.. Понимаю что вопрос нубский, но я всегда обходился без асинхронного вызова, сейчас хочу понять как построить логику, чтобы несколько аккаунтов, каждый со своими параметрами браузера в многопоточном режиме обрабатывали урлы из ресурса используя асинхронный вызов? Возможно ли порциями давать асинхронной функции задания на создание очереди потоков а не весь ресурс целиком, в котором миллионы урлов, пока память не кончится?
Спасибо за любую подсказку