puppeteer cluster начинает зависать при 20 потоках
Использую puppeteer cluster для автоматизации действий на сайте, нужно работать с сайтом одновременно с разных аккаунтов, поэтому для многопоточности использую именно puppeteer cluster.
Устройство у меня достаточно мощное, но вот если запускать одновременно 20 или более потоков - браузера (puppeteer) начинают тормозить сильно, из-за чего приложение падает, так как не удается дождаться селекторов.
Есть ли какие то способы оптимизировать приложение с puppeteer cluster?
У меня скрипт достаточно простой, заходит на страницу, вводит данные для авторизации и постоянно находится на определенной странице, периодически кликая по определенным кнопкам.
PS. Запускаю в безголовом режиме.
Ответы (1 шт):
Это не совсем ответ, а просто рекомендации. Есть несколько способов оптимизировать приложение с puppeteer cluster:
Использовать безголовый режим для запуска браузера, как вы это уже делаете, это может уменьшить нагрузку на ресурсы компьютера.
Уменьшить количество одновременно запущенных потоков до максимально возможного, которое не вызывает торможения.
Начните с небольшого количества потоков, например, 2-4, и наблюдайте за производительностью приложения.
Постепенно увеличивайте количество потоков, например, на 2-4 за раз, и продолжайте наблюдать за производительностью.
Когда вы заметите снижение производительности или торможение, вернитесь к предыдущему количеству потоков и продолжайте работать с ним.
Продолжайте экспериментировать с количеством потоков до тех пор, пока вы не найдете оптимальное количество, которое не вызывает торможения и обеспечивает достаточную производительность
Использовать кэширование данных и сохранять состояние браузера между запросами, чтобы уменьшить необходимость повторно загружать страницы. Можете использовать модуль Node.js для кэширования данных, как
lru-cacheилиnode-cache. Это позволит вам сохранять данные в кэше и использовать их в следующем запросе, если они доступны, вместо того, чтобы заново загружать их с сайта.Вы можете использовать какой-то другой инструмент))