@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
Не загружаются страницы (в записи всё отлично)
-
Когда тестирую в режиме записи - страницы загружаются отлично. Когда запускаю шаблон - только и вижу сообщения о том, что "не удалось дождаться загрузки страницы". Пробовал ставить "максимальное время выполнения" до 90 сек и не помогает. Пробовал запускать даже в одном потоке. Всё равно фигня получается.
В чём может быть проблема? -
@1pepzbd2nyse said in Не загружаются страницы (в записи всё отлично):
@zalton интернет фиговый. оборачивай в игнор ошибок и паузу ставь. страница все равно загрузится
100Мбит, а ну другом компе 1Гбит. Когда ручками в браузерах смотрю страницу - всё мгновенно грузится. В режиме "запись" тоже. А вот запускаю и начинается свистопляска...
Можешь, пожалуйста, объяснить мне, как сделать то, что ты предлагаешь? Я просто не особо шарю пока в оборачивании и других функциях.
-
@zalton красный треугольничек нажимаешь на своем кубике "загрузить страницу" оно оборачивает. далее около кубика вывода ошибки в лог ставишь кубик спать 5 сек или сколько там надо . чтобы страница загрузилась. и всё.
-
@1pepzbd2nyse said in Не загружаются страницы (в записи всё отлично):
@zalton красный треугольничек нажимаешь на своем кубике "загрузить страницу" оно оборачивает. далее около кубика вывода ошибки в лог ставишь кубик спать 5 сек или сколько там надо . чтобы страница загрузилась. и всё.
Подскажи, а можно ли как-то сделать так, чтобы BAS кликал не по элементу, а по области?
Я вижу, что элемент, по которому надо кликать часто не находится. Значит, он может менять название. -
@IvanM said in Не загружаются страницы (в записи всё отлично):
@zalton said in Не загружаются страницы (в записи всё отлично):
чтобы BAS кликал не по элементу, а по области?
Например координты получить и кликнуть рандомно в их диапазоне.
Думал об этом, но не нашёл, как сделать клик по координатам. Подскажете?
-
Думал об этом, но не нашёл, как сделать клик по координатам. Подскажете?
- Кубик "получить координаты элемента"
- "Случайное число" А в диапазоне от X до X+WIDTH, "случайное число" B в диапазоне от Y до Y+HEIGHT
- "Двигать мышь и кликнуть" по координатам A,B
-
@1pepzbd2nyse said in Не загружаются страницы (в записи всё отлично):
@zalton можно ещё попробовать парсить значение изменяемого элемента и подставлять его в действие кликнуть
ооо это наверное слишком сложно для объяснения будет, да?)
-
@IvanM said in Не загружаются страницы (в записи всё отлично):
Думал об этом, но не нашёл, как сделать клик по координатам. Подскажете?
- Кубик "получить координаты элемента"
- "Случайное число" А в диапазоне от X до X+WIDTH, "случайное число" B в диапазоне от Y до Y+HEIGHT
- "Двигать мышь и кликнуть" по координатам A,B
Премного благодарен! Но в силу бедности познания в проге - не могу разобраться с п.2 и п.3
Готов заплатить за подробное объяснение. -
@zalton said in Не загружаются страницы (в записи всё отлично):
@IvanM said in Не загружаются страницы (в записи всё отлично):
Думал об этом, но не нашёл, как сделать клик по координатам. Подскажете?
- Кубик "получить координаты элемента"
- "Случайное число" А в диапазоне от X до X+WIDTH, "случайное число" B в диапазоне от Y до Y+HEIGHT
- "Двигать мышь и кликнуть" по координатам A,B
Премного благодарен! Но в силу бедности познания в проге - не могу разобраться с п.2 и п.3
Готов заплатить за подробное объяснение.Заплатить?За это?))) Ну ок. Мне интересно сколько?)) Могу скинуть кубики проектом через 10 мин, сами подставите элемент.
Переведете @Fox на печеньку сколько посчитаете нужным) -
@IvanM said in Не загружаются страницы (в записи всё отлично):
@zalton said in Не загружаются страницы (в записи всё отлично):
@IvanM said in Не загружаются страницы (в записи всё отлично):
Думал об этом, но не нашёл, как сделать клик по координатам. Подскажете?
- Кубик "получить координаты элемента"
- "Случайное число" А в диапазоне от X до X+WIDTH, "случайное число" B в диапазоне от Y до Y+HEIGHT
- "Двигать мышь и кликнуть" по координатам A,B
Премного благодарен! Но в силу бедности познания в проге - не могу разобраться с п.2 и п.3
Готов заплатить за подробное объяснение.Заплатить?За это?))) Ну ок. Мне интересно сколько?)) Могу скинуть кубики проектом через 10 мин, сами подставите элемент.
Переведете @Fox на печеньку сколько посчитаете нужным)Смотрите, я объясню, что я не понял. Чтобы мы поняли друг друга.
- Кубик "получить координаты элемента" я вставил, кликнув по нужному элементу. Потом сделал "выполнить до этого действия" и не увидел, чтобы в кубик вставились координаты. Как понять, что кубик определил их правильно и вообще определил бы?
- "Случайное число" нашёл, но не знаю, что туда вписывать. Видимо, потому что не знаю координат из п.1
- Не знаю, как двигать мышь и кликнуть по координатам. Насколько понимаю, для этого подойдёт обычная функция "двигать мышь и кликнуть", ведь там подставляются координаты (x,y)
-
@zalton Ок, а сам шаблон секретный или можете поделиться? Или ссылку прислать и указать что нажать надо? А то проблема может быть с селектором.
А, ну и еще может нажатие не происходит, если "ждать полной загрузки страницы" в кубике "загрузить url" не включено.не увидел, чтобы в кубик вставились координаты.
Они вставляются в переменные X, Y, HEIGHT, WIDTH.
Как понять, что кубик определил их правильно и вообще определил бы?
Используйте после сбора координатов кубик "Лог" и напишите в поле [[X]] [[Y]] [[HEIGHT]] [[WIDTH]]
Выполните действие "Лог" и посмотрите что поток написал в логе."Случайное число" нашёл, но не знаю, что туда вписывать.
1 кубик случайного числа:
Вместо RANDOM_NUMBER впишите A
В диапазоне "от": X ... "до": X+WIDTH
2 кубик случайного числа:
Вместо RANDOM_NUMBER впишите B
В диапазоне "от": Y ... "до": Y+HEIGHTНе знаю, как двигать мышь и кликнуть по координатам.
Да, для клика по координатам используется "двигать мышь и кликнуть". Впишите в координаты A (для X) и B (для Y)
-
@IvanM said in Не загружаются страницы (в записи всё отлично):
@zalton Ок, а сам шаблон секретный или можете поделиться? Или ссылку прислать и указать что нажать надо? А то проблема может быть с селектором.
А, ну и еще может нажатие не происходит, если "ждать полной загрузки страницы" в кубике "загрузить url" не включено.не увидел, чтобы в кубик вставились координаты.
Они вставляются в переменные X, Y, HEIGHT, WIDTH.
Как понять, что кубик определил их правильно и вообще определил бы?
Используйте после сбора координатов кубик "Лог" и напишите в поле [[X]] [[Y]] [[HEIGHT]] [[WIDTH]]
Выполните действие "Лог" и посмотрите что поток написал в логе."Случайное число" нашёл, но не знаю, что туда вписывать.
1 кубик случайного числа:
Вместо RANDOM_NUMBER впишите A
В диапазоне "от": X ... "до": X+WIDTH
2 кубик случайного числа:
Вместо RANDOM_NUMBER впишите B
В диапазоне "от": Y ... "до": Y+HEIGHTНе знаю, как двигать мышь и кликнуть по координатам.
Да, для клика по координатам используется "двигать мышь и кликнуть". Впишите в координаты A (для X) и B (для Y)
- Я так полагаю, что координаты должны вставиться автоматически при определении координат элемента.
- Сделал с логом. Вот, что написано: [22:57:19] Поток №1 : 3 1306 283 340
Я так понимаю, это значит, что кубик определения координан определил коорды элемента.
И получается, что это указаны координаты по Х (от 3 до 1306) и по Y (от 283 до 340) ?
-
@zalton said in Не загружаются страницы (в записи всё отлично):
Сделал с логом. Вот, что написано: [22:57:19] Поток №1 : 3 1306 283 340
Последовательно... Координата Х (начало элемента на экране по ширине), координата Y (начало элемента по высоте), ширина самого элемента по шкале X, высота самого элемента по шкале Y (увеличивается вниз). Именно с этими значениями будут работать кубики случайных чисел. По сути случайно выбираем координату внутри поля занимаемого элементом.
Я так полагаю, что координаты должны вставиться автоматически при определении координат элемента.
Автоматически вставляются в те самые 4 переменные
Вот как должно работать, тестовый скрипт:
И убедитесь, что приступаете к клику только тогда, когда страница прогрузилась. Для этого убедитесь, что включены "часики" рядом с кнопками "ОК" и "Отмена". Это в действии "Загрузить URL".

А если проблема из-за самого селектора элемента (координаты мы все-таки получаем с использованием селектора элемента), то я смогу подсказать только если скинете ссылку на страницу и укажете, что за кнопку нужно нажать. Может проблема как-раз в селекторе. И исправив ошибку можно будет и без костыля со случайными координатами обойтись.
-
@zalton said in Не загружаются страницы (в записи всё отлично):
@IvanM said in Не загружаются страницы (в записи всё отлично):
@zalton Ок, а сам шаблон секретный или можете поделиться? Или ссылку прислать и указать что нажать надо? А то проблема может быть с селектором.
А, ну и еще может нажатие не происходит, если "ждать полной загрузки страницы" в кубике "загрузить url" не включено.не увидел, чтобы в кубик вставились координаты.
Они вставляются в переменные X, Y, HEIGHT, WIDTH.
Как понять, что кубик определил их правильно и вообще определил бы?
Используйте после сбора координатов кубик "Лог" и напишите в поле [[X]] [[Y]] [[HEIGHT]] [[WIDTH]]
Выполните действие "Лог" и посмотрите что поток написал в логе."Случайное число" нашёл, но не знаю, что туда вписывать.
1 кубик случайного числа:
Вместо RANDOM_NUMBER впишите A
В диапазоне "от": X ... "до": X+WIDTH
2 кубик случайного числа:
Вместо RANDOM_NUMBER впишите B
В диапазоне "от": Y ... "до": Y+HEIGHTНе знаю, как двигать мышь и кликнуть по координатам.
Да, для клика по координатам используется "двигать мышь и кликнуть". Впишите в координаты A (для X) и B (для Y)
- Я так полагаю, что координаты должны вставиться автоматически при определении координат элемента.
- Сделал с логом. Вот, что написано: [22:57:19] Поток №1 : 3 1306 283 340
Я так понимаю, это значит, что кубик определения координан определил коорды элемента.
И получается, что это указаны координаты по Х (от 3 до 1306) и по Y (от 283 до 340) ?
еще неплохо бы в самом начале проверять вообще элемент есть или нет. если есть только тогда и получать координаты.
-
Бывали ошибки если на страницах много разных и сложных js . Во время записи пропуск кадров отключен даже если выставлен в 60 кадров итд то пропуска не будет . Во время запуска же он подхватится и включится . Советую проверить если выставлен пропуск кадров
-
@IvanM said in Не загружаются страницы (в записи всё отлично):
@zalton said in Не загружаются страницы (в записи всё отлично):
Сделал с логом. Вот, что написано: [22:57:19] Поток №1 : 3 1306 283 340
Последовательно... Координата Х (начало элемента на экране по ширине), координата Y (начало элемента по высоте), ширина самого элемента по шкале X, высота самого элемента по шкале Y (увеличивается вниз). Именно с этими значениями будут работать кубики случайных чисел. По сути случайно выбираем координату внутри поля занимаемого элементом.
Я так полагаю, что координаты должны вставиться автоматически при определении координат элемента.
Автоматически вставляются в те самые 4 переменные
Вот как должно работать, тестовый скрипт:
И убедитесь, что приступаете к клику только тогда, когда страница прогрузилась. Для этого убедитесь, что включены "часики" рядом с кнопками "ОК" и "Отмена". Это в действии "Загрузить URL".

А если проблема из-за самого селектора элемента (координаты мы все-таки получаем с использованием селектора элемента), то я смогу подсказать только если скинете ссылку на страницу и укажете, что за кнопку нужно нажать. Может проблема как-раз в селекторе. И исправив ошибку можно будет и без костыля со случайными координатами обойтись.
Крутил мудрил, но не получилось )))
Можно в личку вам скинуть проект как-то? Чтоб вы глянули -
@zalton said in Не загружаются страницы (в записи всё отлично):
@IvanM said in Не загружаются страницы (в записи всё отлично):
@zalton said in Не загружаются страницы (в записи всё отлично):
Сделал с логом. Вот, что написано: [22:57:19] Поток №1 : 3 1306 283 340
Последовательно... Координата Х (начало элемента на экране по ширине), координата Y (начало элемента по высоте), ширина самого элемента по шкале X, высота самого элемента по шкале Y (увеличивается вниз). Именно с этими значениями будут работать кубики случайных чисел. По сути случайно выбираем координату внутри поля занимаемого элементом.
Я так полагаю, что координаты должны вставиться автоматически при определении координат элемента.
Автоматически вставляются в те самые 4 переменные
Вот как должно работать, тестовый скрипт:
И убедитесь, что приступаете к клику только тогда, когда страница прогрузилась. Для этого убедитесь, что включены "часики" рядом с кнопками "ОК" и "Отмена". Это в действии "Загрузить URL".

А если проблема из-за самого селектора элемента (координаты мы все-таки получаем с использованием селектора элемента), то я смогу подсказать только если скинете ссылку на страницу и укажете, что за кнопку нужно нажать. Может проблема как-раз в селекторе. И исправив ошибку можно будет и без костыля со случайными координатами обойтись.
Крутил мудрил, но не получилось )))
Можно в личку вам скинуть проект как-то? Чтоб вы глянулида, можно