многопоточность в проекте
-
@support said in многопоточность в проекте:
Я просто сказал почему ваш проект не работает. Если не хотите, можете не использовать мой совет.
Я очень хочу использовать Ваши советы и так же хочу понять как несвязанное действие может так отражаться - между ними 4 действия - я хочу понять - так как использую эти действия регулярно... - я начал цикл потом действие загрузить - где выставленна опция - ждать полной загрузки, а ожидание элемента .x-ph__link_last - относится к предыдущему действию - или не так?
@support said in многопоточность в проекте:
Зачем вам OnApplicationStart в этом скрипте?
разъясните и такой момент - я на входе хочу почистить файл куда будут результаты писаться - если я ето действие вынесу из OnApplicationStart - то это действие будет выполнять каждый поток - а так как один закончиться раньше чем другой - то данные записанные отработыанным потоком могут быть стерты тем что в работе???
-
@Turutur Скорее БАС рапортует о загрузке страницы после входа в ок и это воспринимается как загрузка страницы
https://ok.ru/[[FIRST_LIST_ELEMENT]]/members
, дальше БАС переходит к действию прокрутки и во время него происходит смена страницы. После прокрутки БАС ждет что страница прокручена, но так как страница только была создана, этого не происходит.
-
@Turutur Очитску файла как раз можно размещать в OnApplicationStart
-
@support - спасибо - понял - воспользовался подсказками - на старте в онапликатион оставил получение пути и пустую запись в файл - все остальное вынес в общий поток действий - теперь запуская 3 потока - имею 3 совершенно одинаковых потока - которые парсят данные с одних и тех же групп - то есть просто поток в 3 дубля - а меня интересует скорость - что опять то нетак(((
-
@support said in многопоточность в проекте:
@Turutur Очитску файла как раз можно размещать в OnApplicationStart
а такие действия как "читать файл в список" - если вынести из онапликатионстарт - будут все потоки делать одно и то же?
-
@Turutur сделай в онаплстарт ресур в список, но создай для этого глобальную переменную, а уже в самом скрипте сделай что бы каждый поток после использования удалл строку из списка, и на всякий случай сделай запуск потоков через определенное время, друг за другом, тут была тема о том как это сделать. Тогда у тебя потоки не будут брать одинаковую строку
-
@DrPrime said in многопоточность в проекте:
сделай в онаплстарт ресур в список, но создай для этого глобальную переменную
спасибо - хорошая подсказка = попробовал в онапликатион сделать следующее - читаю файл в список - локальная переменная - создаю глобальную - значением указываю локальную на выходе лог
[14:05:15] Поток №1 : ReferenceError: Can't find variable: VAR_SCAN_RESULT_LIST_LOC Номер строки:2 Во время выполнения скрипта { var val = JSON.stringify(VAR_SCAN_RESULT_LIST_LOC); PSet("basglobal", "SCAN_RESULT_LIST", val) section_end(function(){ })}
-
Обновил скрипт - ошибка пропала - но глобальная переменная не приняла заданные значения - значит не вариант
-
@DrPrime said in многопоточность в проекте:
и на всякий случай сделай запуск потоков через определенное время, друг за другом, тут была тема о том как это сделать. Тогда у тебя потоки не будут брать одинаковую строку
нашел эту тему - там чтобы такое проделать - нужно иметь мозг как у админа) - хотелось бы чтобы BAS сам четко отрабатывал и не брал одинаковые строки при тех условиях что стоит удалять строку после взятия...
-
@Turutur попробовал сделать сам - вроде норм, но иногда попадается так что идут 2 одинаковых значения под ряд.
Слушай, а какая вообще суть скрипта? просто через использование ресурса никак не сделать этого?
-
Столкнулся с аналогичной проблемой,
суть в следующем:
1)Парсим прокси в онапликейшнстарт
2)создаем глобальную переменную
3)грузим в нее список ключей
4)парсим выдачу гугла при условии что на каждый поток отдельный проксиПри однопоточном варианте все прекрасно работает, если же многопоток то выдает ошибку что не может получить переменную с ключами. Пробовал и глобальную назначать в онапликейшнстарт и файл в список а после список в глобальную переменную и брать элемент из списка с удалением, вообще никак не хочет пахать
-
@DrPrime суть скрипта в сборе последних вступивших участников в группы ок по целевым запросам
-
суть скрипта в сборе последних вступивших участников в группы ок по целевым запросам
Так а что не получается?
1)Парсим прокси в онапликейшнстарт
Можете создать ресурс, записать туда прокси, а потом использовать его как обычный ресурс в потоках
-
@support а не получается запускать несколько потоков - вернее получается - только все потоки обрабатывают одинаковые данные и прокси здесь ни причем - планирую использовать всего несколько аккаунтов для ускорения процесс - проверка на 3 аках - все норм со стороны ОК РУ - только BAS берет одинаковые данные с файла - соответтвенно скорость выполнения не увеличивается(
-
только BAS берет одинаковые данные с файла
Хотелось бы увидеть настройки ресурса с файлом, а в идеале весь проект.
-
@support - в Ваше отсутствие - я не бросал попыток сделать многопоток самостоятельно - и несколько раз видоизменял проект - добавляя действия в онапликатионстарт, которые необходимо выполнить единожды - такие как список в файл и тому подобное - но перевести их в глобальную переменнцую не удалось( - как впрочем и сделать многопоток - сейчас проект выстроен линейно под один поток - @support пожалуйста покажите на примере моего проекта как его сделать многопоточным - по всем правилам, чтобы небыло пересечений действий в потоках и использования одинаковых ресурсов
0_1477832211837_parse_members_ok.rar
-
@support пожалуйста покажите на примере моего проекта как его сделать многопоточным - по всем правилам, чтобы небыло пересечений действий в потоках и использования одинаковых ресурсов
-
@support спасибо - я даже не подозревал, что нужно так делать - пока изучал пример - у меня чуть питание в голове не отключилось). Огромным недостатком BAS, впрочем как и его колоссальным преимуществом является большое количество комбинаций действий - логически не всегда придешь к нужному решению - иногда это возможно только методом перебора всех возможных вариаций(
-
Возможно проблема уже решена, может даже данный пример уже был описан, но я его просмотрел. Выложу может кому-нибудь будет полезен. Создаем файл указываем его расположение. В онеапликейшен парсим туда ссылки и от туда уже в многопотоке обрабоатываем
0_1477902472311_парс авито.xml
-
@Стас Да, хороший пример, приблизительно так и работает.