@kuzkuz , конечно, скрипт останавливается, если превышает лимит ошибок. Это также, как если стоит выполнять 100 раз и после 100 успехов остановка.
500 потоков лагают | 250+250 летают
-
@gaget007 Здравствуйте,
-
В БАС есть инструмент для нахождения мест в скрипте, которые более всего влияют на производительность. Его можно запустить через Меню -> Отчеты -> Измерять время выполнения действий. Действия, которые будут находится вверху списка "тормозят" скрипт больше всего, и это может быть не только хттп запросы, но и, например, парсинг данных, либо не оптимизированная работа со списками. Только после того, как будет предоставлен такой отчет можно говорить об оптимизации.
-
Если у вас в функции Main находится всего 1 запрос и больше ничего, то больше всего на производительность будет влиять не использование хттп клиента, а именно создание/пересоздание потока. Это можно легко исправить поместив выполнение запроса в цикл, то есть сделать так, чтобы поток пересоздавался через каждый 100/200 запросов, а не через каждый запрос. На больших скриптах такой проблемы не наблюдается, потому что потоки пересоздаются реже.
-
Запланирован апдейт по хттп клиенту, который не будет создавать отдельных потоков для хттп клиента и таким образом улучшит производительность, но не нужно считать это универсальным решением, потому что проблем описанных в пунктах 1) и 2) это не решит.
-
-
@gaget007 said in 500 потоков лагают | 250+250 летают:
Всем привет) С басом работаю давно и достаточно глубоко разбираюсь.
Но вот это понять ни как не могу:Есть скрипт, назовем его просто "парсер". Алгоритм такой - в настройках указываю папку с txt файлами, скрипт берет в цикле по 1 файлу, читает его в список, создает новый ресурс и читает этот список в новый ресурс (сделано для того, что бы строки из взятого txt можно было использовать в многопотоке).
Далее запускается функция в многопотоке, в которой происходит простое действие - берется строка из нового ресурса, отправляется post-запрос, проверяется была ли ошибка в запросе и так по кругу.
Проблема в том, что в 250 потоков пауза между запросами составляет 3 секунды, а если ставлю 500 потоков, то пауза уже 8-10 секунд. Можно было бы подумать на пропускную способность прокси, но если запускаю 2 копии скрипта по 250 потоков, то пауза как и прежде 3 секунды.
Не понимаю совершенно в чем может быть причина. Дело происходит на сервере с Windows Server 2008.
Возможно у кого-то было подобное, буду рад услышать любое мнение!
А какой у вас сервер или ПК? Который тянет столько потоков