Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
log = function (text, color, define){ var id, time, thread, logHtml, textLog; define = (typeof define == 'string') ? define.split(/[\s,.|:;]+/g) : define; if(typeof define === 'object' && define !== null){ if(Array.isArray(define)){ id = define.indexOf('id') > -1; time = define.indexOf('time') > -1; thread = define.indexOf('thread') > -1; } else{ id = define.id == true; time = define.time == true; thread = define.thread == true; } } else id = time = thread = true; id = id ? '<a href="action://action' + ScriptWorker.GetCurrentAction() + '" style="color:gray;">[' + ScriptWorker.GetCurrentAction() + ']</a>' : ''; time = time ? ' ' + getTime() : ''; thread = thread ? ' Поток №' + thread_number() : ''; logHtml = (id || time || thread) ? id + '<span style="color: white">' + time + thread + ' : </span>' : ''; logHtml += '<span style="color:' + (color ? color : 'white') + '">' + text + '</span>'; textLog = '[' + ScriptWorker.GetCurrentAction() + ']' + time + thread + ' : ' + text function getTime(){ var checkTime = function(i){ return (i < 10) ? "0" + i : i; }; var checkMilliSeconds = function(ms){ if (ms < 10) { return "00" + ms; } else if (ms < 100) { return "0" + ms; } else { return ms; } }; var d = new Date(); var hh = checkTime(d.getHours()); var mm = checkTime(d.getMinutes()); var ss = checkTime(d.getSeconds()); var ms = checkMilliSeconds(d.getMilliseconds()); return '[' + hh + ':' + mm + ':' + ss + '.' + ms + ']'; }; Logger.WriteHtml(logHtml, textLog); }Критич. ошибка в логе: "Таймаут во время выполнения MouseMove"
-
@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":
Получилось исправить? Ошибка тоже надоела. Потоки стопаются из-за нее.
поставь больше таймаут и к-во ошибок при выполнении проекта пока задача не решиться - это позволит тебе продолжать использовать проект без остановок.
-
P.S.
по сути получается так, если на странице начинается какое-то движение инициированное JS либами, БАС ловит его понимая что страница загружается и при таймауте, таймаут достается тому блоку, который сейчас выполняется. Возможно я ошибаюсь или не достаточно точно описал, но по наблюдениям как-то так картина получается.Нет, таймауты не могут путаться, максимум что может быть - таймаут загрузки может спутаться с другой загрузкой, но не с движением мыши.
Ту дело в другом, а именно в то время как стает пустой во время перезагрузки функция скрола не возращает значение, из-за этого таймаут. Сейчас правлю.
-
@Sevenup said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":
Почему такие траблы с загрузкой я пока не смог понять, как вариант один из элементов или JS библиотек залип в подгрузке или какая-то JS либа решила что-то заинклудить на страницу. В обычном браузере страница открывается без проблем, а в БАСе уходит в таймаут. Интересно бы узнать как БАС чекает загружена ли страница.
Скорее всего метрика + Украина.
-
@support said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":
@Sevenup said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":
Почему такие траблы с загрузкой я пока не смог понять, как вариант один из элементов или JS библиотек залип в подгрузке или какая-то JS либа решила что-то заинклудить на страницу. В обычном браузере страница открывается без проблем, а в БАСе уходит в таймаут. Интересно бы узнать как БАС чекает загружена ли страница.
Скорее всего метрика + Украина.
через прокси ж работа :)
конкретно в случае с страницей "[http://]ria .ru/ science" http://c2n.me/3LSVbfd.png на скрине видно, что не метрика.если кому интересно, можно воспроизвести описанным выше способом, дублирую:
- блок "браузер"->"загрузить" (грузим для примера страницу [http://]ria .ru/ science)
- блок браузера оборачиваем в игнорирование ошибок или выключаем ожидание загрузки, если выключаем ожидание, после ставим спать несколько секунд давая время загрузится странице
- блок "двигать мышь к элементу и кликнуть" на любую ссылку страницы
- происходит переход на страницу, по которой кликнули
вот тут вопрос, как в случае клика работает "ожидание загрузки"? наследует режим предыдущего блока "загрузить" т.е. в нашем случае выключено?
- пока страница по которой мы кликнули пыжиться и не может догрузиться, у нас уже включается блок "эмуляция бездействия" и на нем мы получаем таймаут MouseMove параллельно наблюдая как страница так и не может загрузиться
при такой последовательности ошибка у меня воспроизводится в 80% случаев, потому и пришел к описанному выше выводу.
P.S.
я не много букв пишу? :) Вы если что меня останавливайте :)))