Но появилась новая проблема. Иногда скрипт во время работы внезапно запрещает выделять действия. Т.е при клике на любое действие, оно просто не выделяется красным. Это второй баг, независимый от первого если что
Как ограничить время работы скрипта
-
в начале потока объявляем 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 минут (условно). И по завершению, завершать весь скрипт.
-
Проверил с асинхронной функцией не получается, так как не срабатывает ни сакцес, ни фейл. Оно видимо срабатывает внутри этой асинхронной, хотя в лог вообще ничего не выводит, поэтому не уверен что она там вообще срабатывает. А жаль, это было бы самое простое решение.