@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
Как поочередно выполнить функции в скрипте?
-
Здравствуйте! Прошу помощи с устранением неработоспособности моего скрипта. Вопрос в следующем::
У меня в скрипте в разделе мейн 4 функции,каждая из которих имеет внутри по 45 функций(одинаковых)Жирный текст,все по задумке должны выполняться поочередно ,но после запуска выполняеться в одной из 4 основных ф-ций 1 мини-функция из 45 и на этом конец. Количество успешных выполнений и неуспешных задано 100. На Вики написано много разных вариантов и установить глоьальнуб переменную,увеличение переменной,и возможно изменить формат чтения ресурса и количество использований.Ресурс у меня строка такого вида {B1|B2|B3}.Помогите с данным вопросом,кто знает как правильно сделать выполнение функций в функцие последовательным.
Заранее благодарю! -
@li11it said in Как поочередно выполнить функции в скрипте?:
Здравствуйте! Прошу помощи с устранением неработоспособности моего скрипта. Вопрос в следующем::
У меня в скрипте в разделе мейн 4 функции,каждая из которих имеет внутри по 45 функций(одинаковых)Жирный текст,все по задумке должны выполняться поочередно ,но после запуска выполняеться в одной из 4 основных ф-ций 1 мини-функция из 45 и на этом конец. Количество успешных выполнений и неуспешных задано 100. На Вики написано много разных вариантов и установить глоьальнуб переменную,увеличение переменной,и возможно изменить формат чтения ресурса и количество использований.Ресурс у меня строка такого вида {B1|B2|B3}.Помогите с данным вопросом,кто знает как правильно сделать выполнение функций в функцие последовательным.
Заранее благодарю!Скорее всего вы перемещаетесь между функциями через метки
-
@li11it said in Как поочередно выполнить функции в скрипте?:
@fox Нет,никак не перемещаюсь,но через метки пробывала,то ли неправильно то ли не получилось. Это может быть в ресурсе дело?Или нужно просто настроить какие-то ходы между функциями?типа меток или установкой глобальной переменной?
Я не знаю, что у вас происходит в скрипте. Для простого поочерёдного выполнения функций, не нужно ни чего дополнительно делать, скидывайте скрипт, посмотрю
-
@uraabk Где-то читала.что это помогает работе скрипта,не судите строго.я еще только учусь.
Так это не нужно?
Но проблема в том,что все функции не выполняються друг за другом.При запуске одна функция выполнилась и все.конец.А планировалось чтобы все по очереди выпрлнялось.и что делать с этим не знаю вот. Если есть какие-то способы буду рада если поделитесь. -
@li11it said in Как поочередно выполнить функции в скрипте?:
Где-то читала.что это помогает работе скрипта,не судите строго.я еще только учусь.
Весь скрипт не читал
но осуждаю =)
Для примера я вам сделал как можно использовать игнорировать ошибки в первой функции Page1Big и самые первые действия. После загрузки страницы он там чота ждет потом получает и кликает.
0_1560242354146_1560192544278-freereg-tubekomnt_Page1Big.xml
Вот для чего нужно использовать игнорировать ошибки это один из вариантов, а просто натыкать их в коде без указаний это не поможет) И да если вы уберете этот ужос) Читаемость сильно повысится. -
@tts9 Благодарю! Много полезной инормации для меня,буду над этим работать,БАС очень хороший сам по себе софт,но пока без знаний всех нюансов нужно еще видимо смотреть обучаюшие курсы,там все довольно ясно. Столько идей именно для БАСа ,но чтобы все воплотить сначала нужно его понять.
Спасибо за пример,полезная критика.
Пользуясь случаем хочу спросить,если вызываемая функция кажды раз выполняет свои действия на новой странице странице,но там стоит поиск элемента по не по его id,а по его class,этот елемент будет найден или на новой странице и class у элемента новый?(как я понимаю меняет элемент только id) -
@li11it Все действия он будет производить только на текущей странице, если вы ему не укажите иное. Это касается браузера. Например вы сохраните html страницы и будете обращаться к нему. Тогда это может быть любая вкладка, но вот нажать он попытается на текущую.
Касаемо вывода в лог и [[WAS_ERROR]]. Выведет он номер ошибки если не найдет, Этот номер это
.
Да это отладочная информация вы всегда можете найти где была ошибка. Он вам скажет какой кубик выдал исключение. По умолчанию бас эти кубики сам добавляет. Они не обязательны.
