как сбросить таймер
Модератор: immortal
- vitosmaxim80sad145
- Сообщения: 148
- Зарегистрирован: Сб июл 07, 2018 12:48 am
- Откуда: Днепр
- Благодарил (а): 100 раз
- Поблагодарили: 1 раз
как сбросить таймер
есть у меня такой код ,гдето взял на форуме
//напомним вынести мусор
$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 как ето избежать
//напомним вынести мусор
$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 как ето избежать
-
- Сообщения: 104
- Зарегистрирован: Ср янв 09, 2019 8:37 pm
- Благодарил (а): 23 раза
- Поблагодарили: 26 раз
Re: как сбросить таймер
459 просмотров, прикольно.
Почему бы не проверять значение Musor.late перед say внутри setTimeOut?
Проговаривание на сброс - проверяйте, через timeOutExists, есть ли таймер. Если есть - проговариваете и сбрасываете.
Почему бы не проверять значение Musor.late перед say внутри setTimeOut?
Проговаривание на сброс - проверяйте, через timeOutExists, есть ли таймер. Если есть - проговариваете и сбрасываете.
- За это сообщение автора JackOfShadows поблагодарил:
- vitosmaxim80sad145 (Чт окт 08, 2020 11:07 am)
- Рейтинг: 1.16%
- vitosmaxim80sad145
- Сообщения: 148
- Зарегистрирован: Сб июл 07, 2018 12:48 am
- Откуда: Днепр
- Благодарил (а): 100 раз
- Поблагодарили: 1 раз
Re: как сбросить таймер
Спасибо что отозвались ,но я немного непонялJackOfShadows писал(а): ↑Вт окт 06, 2020 11:09 am459 просмотров, прикольно.
Почему бы не проверять значение Musor.late перед say внутри setTimeOut?
Проговаривание на сброс - проверяйте, через timeOutExists , есть ли таймер. Если есть - проговариваете и сбрасываете.
Почему бы не проверять значение Musor.late перед say внутри setTimeOut? Я ведь вначале проверяю если время и статус 1 то запустить таймер ,вроде все правельно-как вы советуете проверить ещё ? А timeOutExists вставить вместо клин таймер и добавить сей ? Но снова же непойму почему у меня таймер не сбрасует по изменению статуса ?За ранее спасибо
-
- Сообщения: 104
- Зарегистрирован: Ср янв 09, 2019 8:37 pm
- Благодарил (а): 23 раза
- Поблагодарили: 26 раз
Re: как сбросить таймер
Вы проверяете, что время позже 7 утра и задача есть, говорите "выбросить" и заводите таймаут на час. Если мусор в течение этого часа выбросится - таймер всё равно сработает, его же никто не сбрасывает. Я добавляю проверку перед say в таймере. Ну или можно ловить изменение Musor.late и сбрасывать таймер там - но тогда обработка будеи в двух местах, смотрите сами.vitosmaxim80sad145 писал(а): ↑Чт окт 08, 2020 11:15 amСпасибо что отозвались ,но я немного непонял
Почему бы не проверять значение Musor.late перед say внутри setTimeOut? Я ведь вначале проверяю если время и статус 1 то запустить таймер ,вроде все правельно-как вы советуете проверить ещё ?
Потому что Вы не обрабатываете изменение статуса.А 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");
}
}
-
- Сообщения: 104
- Зарегистрирован: Ср янв 09, 2019 8:37 pm
- Благодарил (а): 23 раза
- Поблагодарили: 26 раз
-
- Сообщения: 104
- Зарегистрирован: Ср янв 09, 2019 8:37 pm
- Благодарил (а): 23 раза
- Поблагодарили: 26 раз
- vitosmaxim80sad145
- Сообщения: 148
- Зарегистрирован: Сб июл 07, 2018 12:48 am
- Откуда: Днепр
- Благодарил (а): 100 раз
- Поблагодарили: 1 раз
Re: как сбросить таймер
спасибо за помощь долго не отвечал не было времени , я все делал как здесь 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
-
- Сообщения: 65
- Зарегистрирован: Вт фев 17, 2015 8:40 pm
- Благодарил (а): 19 раз
- Поблагодарили: 2 раза
Re: как сбросить таймер
должно быть "if(gg('Musor.late')=='1') (два знака равенства) вы же сравниваете а не присваиваетеvitosmaxim80sad145 писал(а): ↑Чт ноя 19, 2020 12:35 pmспасибо за помощь долго не отвечал не было времени , я все делал как здесь 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
- За это сообщение автора timurufa86 поблагодарили (всего 2):
- JackOfShadows (Сб дек 26, 2020 9:20 pm) • vitosmaxim80sad145 (Ср дек 30, 2020 12:09 am)
- Рейтинг: 2.33%
-
- Сообщения: 104
- Зарегистрирован: Ср янв 09, 2019 8:37 pm
- Благодарил (а): 23 раза
- Поблагодарили: 26 раз
Re: как сбросить таймер
Точно, спасибо.timurufa86 писал(а): ↑Пт дек 25, 2020 9:15 amдолжно быть "if(gg('Musor.late')=='1') (два знака равенства) вы же сравниваете а не присваиваете