@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
Работа в 1 аккаунт в 3х вкладках/окнах?
-
Здравствуйте!
Есть один аккаунт, на сайте есть три вкладки с разными типами заданий. Предполагается одновременная работа по трем типам.
Понимаю так, что в BAS должно быть открыто три браузера для каждой страницы сайта по типу заданий и браузер и пользователь должны быть идентичными.
Подскажите как правильно организовать логику скрипта?
3 потока - значит для каждого потока нужна своя папка с профилем (профиль тогда копировать из первичной папки в папки для других 2х потоков. Ведь для каждого потока нужен свой профиль? и нельзя его взять с той же папки). Или можно обойтись без профиля (отпечаток/куки)? Запутался совсем...
Спасибо! -
@Verel said in Работа в 1 аккаунт в 3х вкладках/окнах?:
Подскажите как правильно организовать логику скрипта?
3 потока - значит для каждого потока нужна своя папка с профилем (профиль тогда копировать из первичной папки в папки для других 2х потоков. Ведь для каждого потока нужен свой профиль? и нельзя его взять с той же папки). Или можно обойтись без профиля (отпечаток/куки)? Запутался совсем...
Спасибо!Папку с профилем, для всех потоков используйте одну, в каждом потоке переключайтесь на этот профиль.
-
@denanotherday said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@Verel said in Работа в 1 аккаунт в 3х вкладках/окнах?:
Подскажите как правильно организовать логику скрипта?
3 потока - значит для каждого потока нужна своя папка с профилем (профиль тогда копировать из первичной папки в папки для других 2х потоков. Ведь для каждого потока нужен свой профиль? и нельзя его взять с той же папки). Или можно обойтись без профиля (отпечаток/куки)? Запутался совсем...
Спасибо!Папку с профилем, для всех потоков используйте одну, в каждом потоке переключайтесь на этот профиль.
BAS блокирует профиль и поэтому 3 потока не смогут одновременно использовать один профиль, придется копировать папку. Либо использовать куки и один и тот же отпечаток без постоянного профиля, для многих сайтов это не критично
-
@UserTrue said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@denanotherday said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@Verel said in Работа в 1 аккаунт в 3х вкладках/окнах?:
Подскажите как правильно организовать логику скрипта?
3 потока - значит для каждого потока нужна своя папка с профилем (профиль тогда копировать из первичной папки в папки для других 2х потоков. Ведь для каждого потока нужен свой профиль? и нельзя его взять с той же папки). Или можно обойтись без профиля (отпечаток/куки)? Запутался совсем...
Спасибо!Папку с профилем, для всех потоков используйте одну, в каждом потоке переключайтесь на этот профиль.
BAS блокирует профиль и поэтому 3 потока не смогут одновременно использовать один профиль, придется копировать папку. Либо использовать куки и один и тот же отпечаток без постоянного профиля, для многих сайтов это не критично
Да. Сейчас попробовал войти по такому принципу.

Во всех потоках вход по профилю, без авторизации. -
@denanotherday said in Работа в 1 аккаунт в 3х вкладках/окнах?:
Во всех потоках вход по профилю, без авторизации.
Это не может работать в актуальной версии БАС! Записал гифку, на ней видно, что работает только один браузер. Во втором потоке браузер не открывается, а в 3 потоке он даже не был создан

Если немного подождать, то будет ошибка

-
@denanotherday said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@UserTrue
Возможно. Использую 23.2.2 версию.Вы бы хоть это указывали, чтобы не путать людей. Уже скоро год как 23 версия не актуальна
-
@UserTrue said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@denanotherday said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@UserTrue
Возможно. Использую 23.2.2 версию.Вы бы хоть это указывали, чтобы не путать людей. Уже скоро год как 23 версия не актуальна
Это в вашем мире, у обычных людей 23 до сих пор работает отлично. Вон у меня на авито, авто ру и юле бот сидит без выключения с 27 ноября.
-
@Dodok said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@UserTrue said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@denanotherday said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@UserTrue
Возможно. Использую 23.2.2 версию.Вы бы хоть это указывали, чтобы не путать людей. Уже скоро год как 23 версия не актуальна
Это в вашем мире, у обычных людей 23 до сих пор работает отлично. Вон у меня на авито, авто ру и юле бот сидит без выключения с 27 ноября.
У обычнных людей как раз стоит актуальная версия, и если в сообщение не указано иного то разумно полагать, что речь идёт именно о актуальной версии. 23 версия в любом случае уже не поддерживается и с кучей дыр, ещё год назад многие сайты даже не пускали через нее. А ваши юла и тп у меня вообще на запросах работают, такие сайты не показатель.
-
@UserTrue said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@denanotherday said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@UserTrue
Возможно. Использую 23.2.2 версию.Вы бы хоть это указывали, чтобы не путать людей. Уже скоро год как 23 версия не актуальна
Забыл указать. А насчет актуальности, в этом случае 23.2.2
-
@Dodok said in Работа в 1 аккаунт в 3х вкладках/окнах?:
@UserTrue я рад за вас.
Но что то кажется по поводу дыр, вы и щас в АКТУАЛЬНОЙ ВЕРСИИ нюни льете, все не так и все не то... так что вам хоть реальный браузер, все равно найдете до чего дое...
Где я ныл? Вы меня с собой видимо перепутали, вы последнее время в своих сообщениях не совсем адектватны.
-
Я делал так.
Задал в настройках вверху три потока.
Начало скрипта, там где устанавливается разрешение экрана, идет авторизация и сохрание куки - это первый поток. Когда куки мы получили, авторизовавшись - я их устанавливаю как глобальную переменную, например CO (изначально она была равно 0, или 666)Во втором потоке идет все время чекание, чему равно CO. Если еще 0 или 666, то спим 1 секунду, и снова проверка.
Как только СО не равно 0 или 666, идет подгрузка этих куки, открываются нужные страницы, и пошла работа, которая нужна во второй вкладке.Аналогично третья вкладка.
А первая, после того, как отдала куки, тоже как бы отстрелялась, и теперь делает задания, которые от нее нужны.
Ах да. Как прописать логику работы скрипта с тремя потоками? Просто заходим в статистику скрипта, номер потока. Ставим условие IF номер потока == 1, то такие-то действия, 2 и 3 - соотстветственно, такие-то.
Запускаем, и всё работает как часы.
У меня лишь была загвоздка, что все три вкладки должны были одновременно кликнуть допустим в одно место, но потоки все время между собой сообщались посредством Глобальных переменных с некоторым "люфтом" в долю секунды, пока второй поток получит от первого отмашку. и это было недопустимо, в итоге я тогда так и не придумал, как убрать люфт. Возможно, привязку сделать к часам, не знаю