Завершить выполнение скрипта через 10 минут



  • Подскажите как проще всего решить эту задачу?
    После 10 мин работы скрипт(поток) перезапускался.



  • @assd Завершить работу скрипта или перезапуск потока по времени?



  • Суть такая у меня скрипт выполняется N1 секунд + смотрит видео N2 cекунд , если во время просмотра видео
    N1+N2==600 сек надо чтобы заново перезапускался поток.
    Я знаю как после выполнения действия(просмотр видео/спит) сделать прирывание,а как во время выполнения действия хз...



  • @assd Просмотр видео происходит же в фоне, поток при этом выполняет действие "спать"?



  • @fox да,он спит 60-100% длительности видео



  • @assd Не понимаю в чём проблема

    Я знаю как после выполнения действия(просмотр видео/спит) сделать прирывание

    Засекаешь время в начале работы скрипта, а дальше в цикле проверяешь, если 10 минут прошло, то прерываешь, если не прошло, то спать пару секунд.



  • @assd Хм. А чем не устраивает действие сон?



  • @denis_krsk said in Завершить выполнение скрипта через 10 минут:

    @assd Хм. А чем не устраивает действие сон?

    Ему вроде как надо завершить работу потока после определённого времени, учитывать надо и загрузку страницы и выполнение скрипта



  • @denis_krsk У меня спит он рандомно от 60% до 100% длительности видео это часто больше 600сек
    Трудность в том что некоторые видео не 600 сек. же
    И получается мне надо вычислить рандомное время и как бы его спать по 2 сек и проверять не прошло ли больше 600 сек.



  • @assd Ну проверку времение можно примерно так делать:

    1. Экшеном бас или js [[DATE_START]]=Date.now() перед началом цикла запоминаешь в переменную текущее время.
    2. Запускаешь цикл while с условием Date.now()-[[DATE_START]]<[[BREAK_TIME_SEC]]
    3. В теле цикла ставишь действие сон, минимум 1000ms

    Вообщем примерно так если через выполнить код:

    [[BREAK_TIME_SEC]]=400*1000; //Сколько сек смотрим видео в ms
    [[DATE_START]]=Date.now(); //Время начала цикла
    _do(function(){
    if(Date.now()-[[DATE_START]]>[[BREAK_TIME_SEC]]) _break();
    sleep(1000)!;
    })!



  • @fox Проблема в моей фантазии.))
    Спасибо)



  • А почему просто не получать длительность видео потом его в сон и закрыть?



  • @root После просмотра ещё переходы должны быть



  • @assd
    Воспользуйся моим скриптом "цикл по времени", просто чуть его скорректируй под себя: https://community.bablosoft.com/topic/4609