Как ускорить процесс? Многопоточность или много инстансов?

Zippy

Client
Регистрация
14.12.2021
Сообщения
64
Благодарностей
6
Баллы
8
Суть процесса: 1) Логин на хостинг.
------------
2) Открытие новой вкладки и переход по ссылке.
3) Открытие новой вкладки и переход по ссылке.
4) и т.д. пока не закончатся ссылки в таблице
--------------
Когда закончились ссылки, переходим в следующий блок:
1) Переход на первую вкладку и на ней нажимаем кнопку для генерации ещё одной ссылки
2) Переход на вторую вкладку и на ней нажимаем кнопку для генерации ещё одной ссылки
3) и т.д. пока не закончатся вкладки
------------------
Когда закончились вкладки, переходим в следующий блок:
1) Активируем первую вкладку и вытаскиваем сгенерированную ссылку в таблицу
2) Активируем вторую вкладку и вытаскиваем сгенерированную ссылку в таблицу

Сделал именно такой алгоритм, т.к. загрузка страниц и генерация ссылок занимает некоторое время, а пока дойдёт до 30й вкладки, генерация как раз заканчивается и уже остаётся только спарсить ссылку. Сейчас получение 30 ссылок занимает 04:30 мин. и съедает прилично памяти, пришлось даже расширять стандартные параметры памяти в настройках зенопостера.
Вопрос в том, как сократить время выполнения? Наверно надо многопоток задействовать. Но как, можете подсказать? Не понимаю пока, как глобальные переменные работают? Мне пока приходит в голову только идея с несколькими инстансами. Например три проекта, в каждом берётся только 10 ссылок, которые пишутся до 10й ячейки включительно и так же со вторым и третьим проектом, все будут писать в один файл, ну и в итоге запустить их как три инстанса параллельно. Только вот возникает вопрос - как быть с авторизацией, получится ли такая схема на одном акке? Ведь каждый инстанс будет с новым профилем входить на сайт или может быть можно всё делать под одним профилем и логиниться только в первом инстансе? Но тогда нужно все последующие инстансы начиная с первого, запускать с небольшой задержкой после запуска первого.
2022-02-12_21-21-46.png
 

djaga

Administrator
Регистрация
26.04.2020
Сообщения
510
Благодарностей
1 058
Баллы
93
@Zippy, Привет.
Простое решение, это просто переехать с excel на базу данных, так и памяти вы потратите меньше и скорость прокачаете.
ИМХО: А потом уже когда разберётесь как работать с локами можно будет думать о многопоточных шаблонах.

Так же можно ограничить загрузку запросов с помощью белого и черного списка.
А потом, как вариант, можно авторизовать на сайте, брать куки контейнер и делать уже get запросы. Скорость улетит в небеса.

PS. Сори за оффтоп. Не забудьте получить статус клиента на форуме, это позволит скачивать бесплатные шаблоны из спец. раздела (там есть много примеров логики) и писать в Лс.
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)