Версия А-парсера последняя бета. При парсинге разных ПС, в частности Яндекса и Гугла наблюдается проблема с последним потоком. На последнем потоке А-парсер встает. Сейчас попробовал сделать специально тест задания с 1 результатом, вот что в логах https://skr.sh/sGsL2ECiWrs?a Такая проблема наблюдается в последних версиях А-парсера, на любых проксях. Можно это поправить? Потому что основные пресеты у меня для парсинга такие, что результат сохраняется только после парсинга всех данных, т.е. данные хранятся в памяти, в итоге ничего не сохраняется в результат.
На скриншоте не видно чтобы было какое-то зависание или что-то в этом роде. Идет перебор попыток - это обычное поведение. И обработка данного запроса закончится когда будет получен результат или закончатся попытки.
По логике, ближе к концу парсинга, Апарсер замедляется за счёт того, что дольше ищет рабочие прокси и не остаётся живых сессий от других потоков. Часто бывают ситуации когда задача по тысячам запросов собирается за пару минут, а последние несколько запросов собирает намного дольше. Такое поведение наблюдается на парсерах, где встречается бан и капча, например, Яндекс и Google. Это не ошибка, но было бы здорово эту ситуацию каким-то образом обработать. Как вариант, последние запросы собирать параллельно в несколько потоков, которых в избытке ближе к концу парсинга. Конечно, такое поведение не понравится тем, кто использует антикапчу, т.к. увеличит расход. Но можно было бы сделать такую опцию в парсерах. Я бы ею пользовался.
Скриншоты ниже наглядно показывают подобную ситуацию. 1. Меньше чем за три минуты собрано 70% запросов. 2. Оставшиеся 30% собирались целых 16 минут! Время сбора растянулось за счёт последних нескольких запросов. При этом новых задач параллельно особо не поставишь, т.к. зарезервированы все 150 потоков, а не только один используемый в данный момент. Также и по другим задачам, которые выполнялись параллельно.
Используйте Динамический лимит потоков (https://a-parser.com/threads/2726/) для перераспределения освобождающихся потоков на следующие в очереди задания
Спасибо, не знал. Это решает проблему в рамках множества задач. Нам поможет. Но по отдельной задаче замедление в конце выполнения останется. Возможно у вас всё же найдётся решение для этой проблемы.
да есть такое, я уже как-то предлагал сделать включение параметра (включить если хочу использовать) где можно задать например в процентах, что если осталось в конце например 0.5% от задания (крохи остались) то например закончить парсинг, но мое предложение завернули к сожалению ))