Страница 1 из 1
как сбросить таймер
Добавлено: Сб окт 03, 2020 10:53 am
vitosmaxim80sad145
есть у меня такой код ,гдето взял на форуме
//напомним вынести мусор
$h=gg('ThisComputer.timeNow');
$tasc=gg('Musor.late');
if (($h>=7) && $tasc="1") {
ClearTimeOut("HomeTasks"); // очищаем таймер (чтобы случайно две копии не запустить)
say(getRandomLine('Musor'),2);
setTimeOut("HomeTasks","say(getRandomLine('Musor'),2);",30*60);// ставим таймер на запуск самого себя через 45 минут
} elseif(($h>=16) || $tasc="0") {
ClearTimeOut("HomeTasks");
}
но при изминении свойстиа Musor.late с1 на 0 таймер всеравно продолжает работать до заданого времени ,проговаривает текст и лиш затм сбрасуется , как поправить чтобы он сбрасывался сразу по изминению свойства и как вставит say на сброс таймера , если вставить после
elseif(($h>=16) || $tasc="0") {
ClearTimeOut("HomeTasks"); то он будет говорить каждый день в 16 00 как ето избежать
Re: как сбросить таймер
Добавлено: Вт окт 06, 2020 11:09 am
JackOfShadows
459 просмотров, прикольно.
Почему бы не проверять значение Musor.late перед say внутри setTimeOut?
Проговаривание на сброс - проверяйте, через timeOutExists, есть ли таймер. Если есть - проговариваете и сбрасываете.
Re: как сбросить таймер
Добавлено: Чт окт 08, 2020 11:15 am
vitosmaxim80sad145
JackOfShadows писал(а): ↑Вт окт 06, 2020 11:09 am
459 просмотров, прикольно.
Почему бы не проверять значение Musor.late перед say внутри setTimeOut?
Проговаривание на сброс - проверяйте, через timeOutExists , есть ли таймер. Если есть - проговариваете и сбрасываете.
Спасибо что отозвались ,но я немного непонял
Почему бы не проверять значение Musor.late перед say внутри setTimeOut? Я ведь вначале проверяю если время и статус 1 то запустить таймер ,вроде все правельно-как вы советуете проверить ещё ? А timeOutExists вставить вместо клин таймер и добавить сей ? Но снова же непойму почему у меня таймер не сбрасует по изменению статуса ?За ранее спасибо
Re: как сбросить таймер
Добавлено: Пт окт 09, 2020 4:57 pm
JackOfShadows
vitosmaxim80sad145 писал(а): ↑Чт окт 08, 2020 11:15 am
Спасибо что отозвались ,но я немного непонял
Почему бы не проверять значение Musor.late перед say внутри setTimeOut? Я ведь вначале проверяю если время и статус 1 то запустить таймер ,вроде все правельно-как вы советуете проверить ещё ?
Вы проверяете, что время позже 7 утра и задача есть, говорите "выбросить" и заводите таймаут на час. Если мусор в течение этого часа выбросится - таймер всё равно сработает, его же никто не сбрасывает. Я добавляю проверку перед say в таймере. Ну или можно ловить изменение Musor.late и сбрасывать таймер там - но тогда обработка будеи в двух местах, смотрите сами.
А timeOutExists вставить вместо клин таймер и добавить сей ? Но снова же непойму почему у меня таймер не сбрасует по изменению статуса
Потому что Вы не обрабатываете изменение статуса.
Вот как-то так - смотрите мои комментарии (я не проверял).
Код: Выделить всё
$h=gg('ThisComputer.timeNow');
$tasc=gg('Musor.late');
if (($h>=7) && $tasc="1") {
ClearTimeOut("HomeTasks");
say(getRandomLine('Musor'),2);
setTimeOut("HomeTasks","if(gg('Musor.late')='1') {say(getRandomLine('Musor'),2);}",30*60); // повторно проверяем gg('Musor.late')
} elseif(($h>=16) || $tasc="0") {
if(timeOutExists("HomeTasks")!=0) { // проверяем наличие таймера
say('Очищаем таймер');
ClearTimeOut("HomeTasks");
}
}
Re: как сбросить таймер
Добавлено: Пт окт 09, 2020 11:08 pm
JackOfShadows
Этот код у Вас на чём висит? OnNewHour?
Re: как сбросить таймер
Добавлено: Вт окт 27, 2020 7:59 am
JackOfShadows
Как Ваши успехи?
Re: как сбросить таймер
Добавлено: Чт ноя 19, 2020 12:35 pm
vitosmaxim80sad145
JackOfShadows писал(а): ↑Пт окт 09, 2020 11:08 pm
Этот код у Вас на чём висит? OnNewHour?
спасибо за помощь долго не отвечал не было времени , я все делал как здесь
https://www.youtube.com/watch?v=BTjXItZpkgo только лобавил метод say_tasks но если ставлю запуск метода при изменении свойства late то метод срабатывает и при 1 и при 0 то есть если сбрасываешь вручную то метод тоже отрабатывает и говорит что нужно вынести
и второе если код setTimeOut("HomeTasks","say(getRandomLine('Musor'),2);",30*60); то по окончанию таймера говорит а с вашим кодом setTimeOut("HomeTasks","if(gg('Musor.late')='1') {say(getRandomLine('Musor'),2);}",30*60); нет хотя и свойство равно 1 в итоге я сделала все через cron
Re: как сбросить таймер
Добавлено: Пт дек 25, 2020 9:15 am
timurufa86
vitosmaxim80sad145 писал(а): ↑Чт ноя 19, 2020 12:35 pm
JackOfShadows писал(а): ↑Пт окт 09, 2020 11:08 pm
Этот код у Вас на чём висит? OnNewHour?
спасибо за помощь долго не отвечал не было времени , я все делал как здесь
https://www.youtube.com/watch?v=BTjXItZpkgo только лобавил метод say_tasks но если ставлю запуск метода при изменении свойства late то метод срабатывает и при 1 и при 0 то есть если сбрасываешь вручную то метод тоже отрабатывает и говорит что нужно вынести
и второе если код setTimeOut("HomeTasks","say(getRandomLine('Musor'),2);",30*60); то по окончанию таймера говорит а с вашим кодом setTimeOut("HomeTasks","if(gg('Musor.late')='1') {say(getRandomLine('Musor'),2);}",30*60); нет хотя и свойство равно 1 в итоге я сделала все через cron
должно быть "if(gg('Musor.late')=='1') (два знака равенства) вы же сравниваете а не присваиваете
Re: как сбросить таймер
Добавлено: Сб дек 26, 2020 9:20 pm
JackOfShadows
timurufa86 писал(а): ↑Пт дек 25, 2020 9:15 am
должно быть "if(gg('Musor.late')=='1') (два знака равенства) вы же сравниваете а не присваиваете
Точно, спасибо.