Скорее всего, токен рефрешить надо. Вот из документации яндекса
Добавьте скопированный ClientID в ссылку вида https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения> Перейдите по ссылке и на открывшейся странице скопируйте ваш авторизационный токен.Яндекс Метрика
-
@out Бесплатный не значит открытый. Например, может быть такой вариант. Разраб делает 2 скрипта. Один в один поток - фри, второй без ограничений, и если первый утечет, то второй восстановить будет легко.
-
@support said in Яндекс Метрика:
Должен быть защищен, скрипт шифруется/расшифровывается по мере выполнения, такого быть не должно.
Возможно, в новой версии уже так сделано, но перед обновлением BAS скачал SiteVisitor из магазина, установил, запустил, в подпапкe Engine вроде нашел исходный проект. Я не знал, что исходник уже выкладывали на форуме, думал, там другой скрипт, поэтому хотел посмотреть исходник, я тогда как раз задавал вопрос по автоматизации посещений
@support said in Яндекс Метрика:
_on_error не спасает от js ошибок, а тут _result() не установлен в функции.
А разве функция не должна генерировать ошибку, например random_point, которая перед этим вызывается, если она не была успешно завершена и не смогла установить _result()?
вот часть кода, где ошибка:
_if(el_exists, function () { BE.callbacks.element.focus()! BE.callbacks.element.random_point()! BE.log('Move ' + parseInt(_result().split(",")[0]) + ' ' + parseInt(_result().split(",")[1])); move(parseInt(_result().split(",")[0]), parseInt(_result().split(",")[1]))!Ошибка может быть через пару минут, а может через пару часов. Добавлю проверку, но все равно интересно, почему _result() не устанавливается, и при этом не генерируется ошибка в random_point
Решил протестировать скрипт, увеличил количество потоков до 30, BAS стал падать. Уверен, что из-за какого-то кода, но опять же, почему? Запускал и 200 потоков для теста, хоть и с тормозами, но все запустилось.
-
Возможно, в новой версии уже так сделано, но перед обновлением BAS скачал SiteVisitor из магазина, установил, запустил, в подпапкe Engine вроде нашел исходный проект.
В папке engine будет файл с таким содержанием
<Remote ScriptName="sitevisitor" Version="last" Server="https://bablosoft.com/" Username="" Password="" Free="true" Mode="1"/>На диске скрипт не хранится даже в зашифрованном состоянии. Скрипт приходит каждый раз от сервера и только в зашифрованном виде. Этим достигается дополнительная защита и автообновление.
Я не знал, что исходник уже выкладывали на форуме
Этот скрипт есть и на форуме и в примерах для софта, но с магазина его не должно быть возможным получить.
Ошибка может быть через пару минут, а может через пару часов. Добавлю проверку, но все равно интересно, почему _result() не устанавливается, и при этом не генерируется ошибка в random_point
Не знаю, по коду или должен вывалиться таймаут или вернуться два числа через запятую.
Решил протестировать скрипт, увеличил количество потоков до 30, BAS стал падать. Уверен, что из-за какого-то кода, но опять же, почему? Запускал и 200 потоков для теста, хоть и с тормозами, но все запустилось.
Это из-за
BE.callbacks.elementНе так давно добавил оптимизацию - она удаляет сишный элемент как только на нем было выполнено какое-то действие.
Например, такой код точно будет работатьcss("#id").move()! css("#id").click()!а такой может упасть
EL = css("#id") EL.move()! //Тут EL будет помечен для удаления EL.click()! -
@support said in Яндекс Метрика:
Это из-за BE.callbacks.element
Спасибо, поправлю. Но с падением разобрался, оказалось, почему-то утекает память. В диспетчере не отображается, куда, каждый поток потребляет около 70 МБ оперативной памяти. На деле же 20 потоков забирают около 10ГБ оперативки. Временные переменные если и создаются, то в пределах объекта BE, и каждый раз заменяются на новые, т.е. нет утечки памяти. Может ли это быть связано с циклом и вызовом в нем асинхронных функций?
-
Есть ли функция для получения количества потоков?
-
каждый поток потребляет около 70 МБ оперативной памяти
Это в процессе BrowserAutomationStudio.exe? или в Worker.exe?
Если в первом, то нужен проектЕсть ли функция для получения количества потоков?
Нет, но ее обычно или задает разраб, либо она берется из ресурса. Для получение количества ресурсов можно взять ресурс еще 1 раз
-
@blackhacker Если в worker от 50-80 мб, то это нормально, там ведь браузер.
-
@support Да, это так, но остальная память утекает в неизвестном пока направлении, хочу посмотреть каким-нибудь сторонним софтом, куда. Доступно около 10гб памяти, чего в теории должно хватать на 130-140 потоков, а у меня на 20 потоках уже все занимается. При 30 BAS зависает и Windows предлагает его завершить с ошибкой.
А с вами как-то можно связаться, кроме форума? Или есть какое-то точное время, когда вы здесь появляетесь? Иногда появляются проблемы со скриптом, и без вашей помощи дело не движется дальше (а вы иногда по 2-3 дня не заходите на форум, например в выходные)
-
@blackhacker Ну как, получилось найти причину проблем с памятью?
Вот хорошая тулза для чека состояния системы
https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx -
@support Да, через ProcessExplorer посмотрел, все-таки Worker потребляет больше, чем указывает диспетчер Windows. Около 500Мб. И я подозреваю, что это из-за одной моей криво написанной функции, я ее переделываю как раз.
Еще появился вопрос, _set_result() может принимать только строковые значения? Если нет, то почему не передавать туда данные в объекте, например из random_point, или true\false из проверки на существование элемента exist()?Функцию переделал, но не помогло. Заметил, что загрузка сайта занимает около 250-300Мб, остальное видимо код. Попробую отключить картинки, может поможет. Но очень сомневаюсь. Как в маске указать расширение для конкретного домена? Будет ли работать так
*domain.ru/*.png? -
@blackhacker я ему тоже написал... единственное что он мне посоветовал, на записи, справа от браузера, есть кнопка настроек... там нужно включить функцию перезапускать процес...или как то так..уже не помню. но это тоже не помогло сильно. разве что после завершения потока он сбрасывается теперь опять на 10мб, и заново набирает. а раньше было вообще... просто с каждой секундой набирал и не скидывал. еще если скрипт выключить, то эти потоки висят в памяти все равно
-
@blackhacker у меня там по сути загружает то всего 3 страницы, и те небольшие, а когда откючил изображения, так еще меньше. куда оно там берет эту оперативу, вообще не понятно. но у меня это только на одном проекте, который работает с дополнительной вкладкой. есть много проектов с одной вкладкой, там все норм
-
@smurfik у меня с одной вкладкой, но все равно много потребляет. Создал новый проект, добавил загрузку сайта и бесконечный цикл с ожиданием, потом посмотрел - около 300Мб оперативки занимает каждый процесс. Хотя в проекте ничего больше нет, кроме загрузки страницы и цикла. Тоже не представляю, куда память уходит
-
@blackhacker у меня кстати примерно похожее... только у меня есть переменная которая увеличивается, если регистрация не удалась... и вот бывает что 3-6 рег неудачных, поэтому работает долго. утсановлена переменная со значением "5" после идет For от 1 до переменная которая была установлена. и в самом конце идет if если рега неудачная, то идет увеличение переменной в которой было значение "5"
-
Еще появился вопрос, _set_result() может принимать только строковые значения?
Может принимать любые значения.
Как в маске указать расширение для конкретного домена? Будет ли работать так
*domain.ru/*.png?Да, будет. * любая последовательность символов.