@tet-vivi вот так:
/*Dat:eyJzIjoidGV4dCIsInYiOjEsImYiOltdLCJ1dyI6IjAiLCJ1dCI6IjAiLCJ1dG8iOiIwIiwidW0iOiIwIiwiZCI6W3siaWQiOiJTYXZlVGV4dCIsInR5cGUiOiJ2YXIiLCJkYXRhIjoiU0FWRURfVEVYVCJ9XSwicCI6eyJpc19pbWFnZSI6ZmFsc2UsImNzcyI6IiA+Q1NTPiAjdGltZXItMTEwOTg2NSIsInZlcnNpb24iOiIxLjAiLCJjc3MxIjoiID5DU1M+ICN0aW1lci0xMTA5ODY1IiwiY3NzMiI6IiA+Q1NTPiBzcGFuIiwiY3NzMyI6IiIsImN1cnJlbnQiOiJjc3MiLCJtYXRjaCI6Ij5NQVRDSD48c3BhbiBpZD1cInRpbWVyLTExMDk4NjVcIj4wZCAxaCAxNm0gMjZzIDwiLCJ4cGF0aCI6IiA+WFBBVEg+IGlkKFwidGltZXItMTEwOTg2NVwiKSIsImF0IjoiMzU0LCAyODUiLCJ3ZSI6dHJ1ZSwiZmEiOnRydWV9fQ==*/ /*Browser*/ _SELECTOR = " \u003eCSS\u003e #timer-1109865"; wait_element(_SELECTOR)! get_element_selector(_SELECTOR, false).text()! VAR_SAVED_TEXT = _result() section_end()! section_start("", 238272681)! /*Dat:eyJzIjoiaWYiLCJ2IjoxLCJyb2xlIjoibWFzdGVyIiwic2xhdmUiOjgwMTI3MDg5MywibWFzdGVyIjoyMzgyNzI2ODEsImlmX3ZhciI6Il9jeWNsZV9wYXJhbXMoKS5pZl9lbHNlIiwiZiI6W10sInV3IjoiMCIsInV0IjoiMCIsInV0byI6IjAiLCJ1bSI6IjAiLCJkIjpbeyJpZCI6IklmRXhwcmVzc2lvbiIsInR5cGUiOiJjb25zdHIiLCJkYXRhIjoiW1tTQVZFRF9URVhUXV0gIT0gMCIsImNsYXNzIjoiZXhwcmVzc2lvbiJ9LHsiaWQiOiJJZkVsc2UiLCJ0eXBlIjoiY2hlY2siLCJkYXRhIjp0cnVlfV19*/ _cycle_params().if_else = VAR_SAVED_TEXT != 0; _if(_cycle_params().if_else,function(){ section_insert() })! section_end()! section_start("\u007b\u0022n\u0022:\u0022Else\u0022\u007d", 801270893)! /*Dat:eyJzIjoiaWYiLCJ2IjoxLCJyb2xlIjoic2xhdmUiLCJzbGF2ZSI6ODAxMjcwODkzLCJtYXN0ZXIiOjIzODI3MjY4MSwiaWZfdmFyIjoiX2N5Y2xlX3BhcmFtcygpLmlmX2Vsc2UiLCJmIjpbXSwidXciOiIwIiwidXQiOiIwIiwidXRvIjoiMCIsInVtIjoiMCIsImQiOlt7ImlkIjoiSWZFeHByZXNzaW9uIiwidHlwZSI6ImNvbnN0ciIsImRhdGEiOiJbW1NBVkVEX1RFWFRdXSA9IDAiLCJjbGFzcyI6ImV4cHJlc3Npb24ifSx7ImlkIjoiSWZFbHNlIiwidHlwZSI6ImNoZWNrIiwiZGF0YSI6dHJ1ZX1dfQ==*/ _if(!_cycle_params().if_else,function(){ section_insert() })! delete _cycle_params().if_else; section_end()! ```Как ограничить время работы скрипта
-
в начале потока объявляем DATE (получаем текущее время) далее действие добавить секунды к дате DATE_PLUS(прибавляем необходимое время работы скрипта) далее выполнить код
_sa = function() { VAR_DATE_NOW = _parse_date(Date.now(),"auto") if(VAR_DATE_NOW > VAR_DATE_PLUS){ VAR_DATE = VAR_DATE_NOW success("Стоп") } } -
@xtra said in Как ограничить время работы скрипта:
в начале потока объявляем DATE (получаем текущее время) далее действие добавить секунды к дате DATE_PLUS(прибавляем необходимое время работы скрипта) далее выполнить код
_sa = function() { VAR_DATE_NOW = _parse_date(Date.now(),"auto") if(VAR_DATE_NOW > VAR_DATE_PLUS){ VAR_DATE = VAR_DATE_NOW success("Стоп") } }Строка
VAR_DATE = VAR_DATE_NOWздесь лишняя, так как следом идёт завершение потока. И я бы не советовал заменять функцию BAS полностью, кто знает какие баги при этом можно словить. Лучше дополнить своим кодом функцию BAS -
@Strix said in Как ограничить время работы скрипта:
@Fox said in Как ограничить время работы скрипта:
Лучше дополнить своим кодом функцию BAS
Подскажите пожалуйста как это выполнить?
Что именно?
-
@Strix said in Как ограничить время работы скрипта:
Например бывает что скрипт зацикливается - есть ли способ выставить ограничение работы по времени без доп потока?
А не лучше устранить причину, чем ставить подпорки? Если у вас какой-то цикл, например обработки ошибок, то лучше будет просто добавить ограничение на число итераций, и например выбрасывать ошибку.
-
@xtra проблема в том, что мы не знаем где зависон, и делать такую проверку нужно после каждого действия. Нету же варианта глобально следить сколько выполняется поток. Такая бы фишка тоже пригодилась. В Зене есть. Можно просто ограничеть время выполнения.
-
Ещё не проверял, но пришла такая мысль, запускать асинхронную функцию со слипом 30 минут (условно). И по завершению, завершать весь скрипт.
-
Проверил с асинхронной функцией не получается, так как не срабатывает ни сакцес, ни фейл. Оно видимо срабатывает внутри этой асинхронной, хотя в лог вообще ничего не выводит, поэтому не уверен что она там вообще срабатывает. А жаль, это было бы самое простое решение.