@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
Критич. ошибка в логе: "Таймаут во время выполнения MouseMove"
-
@Gang said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":
Я так и не победил. Даже оборачивал в игнорирование ошибок. Не помогло, шаб вылетал по ошибке "Таймаут во время выполнения MouseMove"
сейчас экспериментирую с этой ошибкой..
я так понял, что вероятность такой ошибки сильно уменьшается, если увеличивать время в течение которого производится эмуляция, т.е. если сгенерированные действия не укладываются в отведенное для этого время, то происходит выход по ошибке.. сейчас увеличил это время, пока полет нормальный.. -
@sergodjan66
Ошибка означает, что действие MouseMove не завершилось в указанное время.
Может произойти если
Процесс с браузером мертв,
Движение мыши действительно очень долгое 0,0 -> 0,10000
Возможно какая-от другая ошибка.Тут бы очень помог файл worker_log.txt
И ваши наблюдения - был ли процесс жив в это время, как вообще запускался софт, в режиме запуска или записи? -
@support said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":
Тут бы очень помог файл worker_log.txt
И ваши наблюдения - был ли процесс жив в это время, как вообще запускался софт, в режиме запуска или записи?насчет файла worker_log.txt - в след. раз пришлю его..
запускалось в режиме Записи, браузер живой, я наблюдал за ходом выполнения.. -
@sergodjan66 В worker_log.txt есть координаты, если такое повторится, присылайте, это поможет.
-
@support said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":
@sergodjan66 В worker_log.txt есть координаты, если такое повторится, присылайте, это поможет.
ок, спасибо, попробую снова промоделировать этот момент, если получится повторить - пришлю..
-
заметил такую штуку (воспроизвел несколько раз, закономерность присутствует):
если во время выполнения например "эмуляция бездействия" происходят какие-то процессы на странице, например загрузка какого-то элемента, то вылетает в "Таймаут во время выполнения MouseMove".Берем любую страницу, например [https]://ria.ru/science/ (на ней у меня точно воспроизводится проблема). "браузер"->"загрузить" и она грузится довольно долго, не укладываясь в таймаут. Оборачиваем загрузку в игнорирование ошибок. Все ок, страница загрузилась.
Далее действие "двигать мышь и кликнуть на элемент", происходит переход на другую страницу где такой же залипон, но ошибки нет. Следующим идет блок "эмуляция бездействия" и на нем ловим "Таймаут во время выполнения MouseMove", хотя реально - это таймаут загрузки страницы, на которую мы перешли после клика, а не таймаут движения мышью.Почему такие траблы с загрузкой я пока не смог понять, как вариант один из элементов или JS библиотек залип в подгрузке или какая-то JS либа решила что-то заинклудить на страницу. В обычном браузере страница открывается без проблем, а в БАСе уходит в таймаут. Интересно бы узнать как БАС чекает загружена ли страница.
P.S.
по сути получается так, если на странице начинается какое-то движение инициированное JS либами, БАС ловит его понимая что страница загружается и при таймауте, таймаут достается тому блоку, который сейчас выполняется. Возможно я ошибаюсь или не достаточно точно описал, но по наблюдениям как-то так картина получается. -
@DrPrime said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":
@Sevenup можно в обычном браузере посмотреть время загрузки
http://prntscr.com/fruwa099% страницы загружается за <5c потом тянется какой-то их пиксель и на нем провал. Если его игнорировать то загрузка очень быстрая. Но таких пикселей, которые инклудит JS на разных сайтах бывает довольно часто.
Можно оборачивать страницу в игнорирование ошибок и все казалось бы ок.
Но, если вдруг, на странице, какая-то JS через N времени решит заинклудить что-то еще, например вебвизор движение мышью и вдруг он сделает это долго, БАС вылетит с ошибкой таймаута того блока, на котором находится выполнение проекта в данный момент. Как в данном случае блока движения мышью (эмуляция бездействия). -
@Sevenup Странно вообще, почему ошибка именно в блоке бездействия. Посмотрел код модуля, там нету привязки к елементам, просто получаются размеры страницы и в рамках этих размеров двигает мышью по координатам.
Попробуй отключить полную загрузку страницы, и привязаться к какому то элементу, который гарантированно прогружается сразу -
@DrPrime said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":
@Sevenup Странно вообще, почему ошибка именно в блоке бездействия. Посмотрел код модуля, там нету привязки к елементам, просто получаются размеры страницы и в рамках этих размеров двигает мышью по координатам.
Попробуй отключить полную загрузку страницы, и привязаться к какому то элементу, который гарантированно прогружается сразуhttp://c2n.me/3LT14XK.png
именно так и реализовано, отключена ожидание загрузки и включен таймаут с обернутый в игнорирование ошибок, дальше сон что бы дать время загрузится, а далее уже "двигать мышью и кликнуть на элемент", после клика по элементу происходит переход на другую страницу где снова элементы, которые грузятся долго. После клика происходит переход на "эмуляция бездействия" 7с, а на самом деле она происходит не 7с, а около 30 и/или вываливается в "Таймаут во время выполнения MouseMove". -
@Ranout said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":
Получилось исправить? Ошибка тоже надоела. Потоки стопаются из-за нее.
поставь больше таймаут и к-во ошибок при выполнении проекта пока задача не решиться - это позволит тебе продолжать использовать проект без остановок.