Отключение проверки Alive и setUpdatedText
Модератор: immortal
- Lerych
- Сообщения: 191
- Зарегистрирован: Чт дек 14, 2017 8:46 pm
- Откуда: Московская область, Серпухов
- Благодарил (а): 79 раз
- Поблагодарили: 24 раза
Отключение проверки Alive и setUpdatedText
Добрый вечер, коллеги!
Мне в проекте очень мешает постоянная проверка alive и setUpdatedText. Т.к. в проекте более 300 устройств (реле) изменение их статуса ведёт к созданию огромного количества таймеров для обновления setUpdatedText и alive. Постоянно перезагружается цикл cycle_scheduler. И хотя МД стоит на ББ с Линукс, тормоза замены. Как и где правильно отключить создание этих таймеров?
И ещё попутно вопрос: запрет кэширования для браузера можно где-то включить. Данные на некоторых сценах с большим количеством динамических элементов обновляются практически только по F5.
Спасибо.
Мне в проекте очень мешает постоянная проверка alive и setUpdatedText. Т.к. в проекте более 300 устройств (реле) изменение их статуса ведёт к созданию огромного количества таймеров для обновления setUpdatedText и alive. Постоянно перезагружается цикл cycle_scheduler. И хотя МД стоит на ББ с Линукс, тормоза замены. Как и где правильно отключить создание этих таймеров?
И ещё попутно вопрос: запрет кэширования для браузера можно где-то включить. Данные на некоторых сценах с большим количеством динамических элементов обновляются практически только по F5.
Спасибо.
- Lerych
- Сообщения: 191
- Зарегистрирован: Чт дек 14, 2017 8:46 pm
- Откуда: Московская область, Серпухов
- Благодарил (а): 79 раз
- Поблагодарили: 24 раза
Re: Отключение проверки Alive и setUpdatedText
Братцы! Что с Форумом? Второй день задаю вопросы, ответов - ноль! Перевелись ГУРУ?
Ладно я не в обиде У всех свои дела могут быть.
Сам раскопал по первому вопросу:
Отключаем alive у устройств в файле htdocs\modules\devices\SDevices_statusUpdated.php
Для этого комментируем строки с 13 по 21
Или строку 16 меняем на
Чтобы в свойство Объекта.updatedText писать только дату и время изменения статуса, а не только что, 10 сек. назад и т.д. в файле
htdocs\modules\devices\SDevices_setUpdatedText.php удаляем все строки кроме первой и пишем:
Другой способ, это в классе устройств SDevices в методе setUpdatedText закомментировать строку
и дописать $this->setProperty("updatedText",date("d.m.y H:i:s"));
Внимание! Сохраните копии этих файлов до изменений и после изменений, чтобы в случае обновления системы МД не править их снова.
Ладно я не в обиде У всех свои дела могут быть.
Сам раскопал по первому вопросу:
Отключаем alive у устройств в файле htdocs\modules\devices\SDevices_statusUpdated.php
Для этого комментируем строки с 13 по 21
Код: Выделить всё
<?php
$ot = $this->object_title;
$linked_room = $this->getProperty('linkedRoom');
if ($this->class_title != 'SMotions' || $params['NEW_VALUE']) {
$tm = time();
$this->setProperty('updated', $tm);
$this->callMethod('setUpdatedText');
}
$this->setProperty('alive', 1);
/*
$alive_timeout = (int)$this->getProperty('aliveTimeout') * 60 * 60;
if (!$alive_timeout) {
// $alive_timeout = 2 * 24 * 60 * 60; // 2 days alive timeout by default
$alive_timeout = 5; // 5 sec alive timeout by default
}
setTimeout($ot . '_alive_timer', 'setGlobal("' . $ot . '.alive", 0);', $alive_timeout);
*/
$need_call_logic_action = 1;
Код: Выделить всё
// $alive_timeout = 2 * 24 * 60 * 60; // 2 days alive timeout by default
$alive_timeout = 5; // 5 sec alive timeout by default
htdocs\modules\devices\SDevices_setUpdatedText.php удаляем все строки кроме первой и пишем:
Код: Выделить всё
$this->setProperty("updatedText",date("d.m.y H:i:s"));
Код: Выделить всё
/* begin injection of {SDevices} */
/*require(DIR_MODULES.'devices/SDevices_setUpdatedText.php');*/
/* end injection of {SDevices} */
и дописать $this->setProperty("updatedText",date("d.m.y H:i:s"));
Код: Выделить всё
/* begin injection of {SDevices} */
/*require(DIR_MODULES.'devices/SDevices_setUpdatedText.php');*/
/* end injection of {SDevices} */
$this->setProperty("updatedText",date("d.m.y H:i:s"));
- За это сообщение автора Lerych поблагодарил:
- tarasfrompir (Чт мар 21, 2019 8:38 am)
- Рейтинг: 1.16%
- Lerych
- Сообщения: 191
- Зарегистрирован: Чт дек 14, 2017 8:46 pm
- Откуда: Московская область, Серпухов
- Благодарил (а): 79 раз
- Поблагодарили: 24 раза
Re: Отключение проверки Alive и setUpdatedText
По вопросу Отключения кэширования:
Из глобальной сети:
Из глобальной сети:
Только куда его вставить не пойму, надо чтобы этот код был только на определенных страницах (сценах). Есть соображения?Как отключить кэширование на PHP
У браузеров есть одна очень важная возможность - это кэширование. Данная функция позволяет резко ускорить процесс загрузки страниц. Однако, иногда кэширование приносит большой вред. Например, у Вас на сайте выводятся какие-нибудь котировки валют, которые меняются постоянно. Представьте, что будет, если у пользователей страница будет в кэше, и изменений котировок они не увидят. И вот как отключить кэширование на PHP, я сейчас и напишу.
Для отключения кэширование на PHP достаточно вставить в код скрипта, который вызывается пользователем, следующие строчки:
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0,pre-check=0", false);
header("Cache-Control: max-age=0", false);
header("Pragma: no-cache");
?>
Данный код позволяет дать понять самым разным браузерам, что кэшировать данную страницу нельзя. Таким образом, теперь при каждом обновлении все изменения будут браузерами отображены. Но обратите внимание, если Ваш сайт обновляется не каждую минуту, то отключать кэширование не стоит, так как из-за этого скорость загрузки страниц резко сократится.
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: Отключение проверки Alive и setUpdatedText
Посмотри в сторону отключения кеширования в самом браузере - мож проще будет...Lerych писал(а): ↑Ср мар 20, 2019 11:48 pmПо вопросу Отключения кэширования:
Из глобальной сети:Только куда его вставить не пойму, надо чтобы этот код был только на определенных страницах (сценах). Есть соображения?Как отключить кэширование на PHP
У браузеров есть одна очень важная возможность - это кэширование. Данная функция позволяет резко ускорить процесс загрузки страниц. Однако, иногда кэширование приносит большой вред. Например, у Вас на сайте выводятся какие-нибудь котировки валют, которые меняются постоянно. Представьте, что будет, если у пользователей страница будет в кэше, и изменений котировок они не увидят. И вот как отключить кэширование на PHP, я сейчас и напишу.
Для отключения кэширование на PHP достаточно вставить в код скрипта, который вызывается пользователем, следующие строчки:
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0,pre-check=0", false);
header("Cache-Control: max-age=0", false);
header("Pragma: no-cache");
?>
Данный код позволяет дать понять самым разным браузерам, что кэшировать данную страницу нельзя. Таким образом, теперь при каждом обновлении все изменения будут браузерами отображены. Но обратите внимание, если Ваш сайт обновляется не каждую минуту, то отключать кэширование не стоит, так как из-за этого скорость загрузки страниц резко сократится.
Спасибо нам ПОМОЖЕТ..!
- Lerych
- Сообщения: 191
- Зарегистрирован: Чт дек 14, 2017 8:46 pm
- Откуда: Московская область, Серпухов
- Благодарил (а): 79 раз
- Поблагодарили: 24 раза
Re: Отключение проверки Alive и setUpdatedText
Из сети:tarasfrompir писал(а): ↑Чт мар 21, 2019 8:40 amПосмотри в сторону отключения кеширования в самом браузере - мож проще будет...Lerych писал(а): ↑Ср мар 20, 2019 11:48 pmПо вопросу Отключения кэширования:
Из глобальной сети:Только куда его вставить не пойму, надо чтобы этот код был только на определенных страницах (сценах). Есть соображения?Как отключить кэширование на PHP
У браузеров есть одна очень важная возможность - это кэширование. Данная функция позволяет резко ускорить процесс загрузки страниц. Однако, иногда кэширование приносит большой вред. Например, у Вас на сайте выводятся какие-нибудь котировки валют, которые меняются постоянно. Представьте, что будет, если у пользователей страница будет в кэше, и изменений котировок они не увидят. И вот как отключить кэширование на PHP, я сейчас и напишу.
Для отключения кэширование на PHP достаточно вставить в код скрипта, который вызывается пользователем, следующие строчки:
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0,pre-check=0", false);
header("Cache-Control: max-age=0", false);
header("Pragma: no-cache");
?>
Данный код позволяет дать понять самым разным браузерам, что кэшировать данную страницу нельзя. Таким образом, теперь при каждом обновлении все изменения будут браузерами отображены. Но обратите внимание, если Ваш сайт обновляется не каждую минуту, то отключать кэширование не стоит, так как из-за этого скорость загрузки страниц резко сократится.
А мне как раз в Хроме надо отключить. Может в основной шаблон вставить?В Google, видимо, считают, что отключение кэша в Chrome среднему пользователю не нужно, потому что браузер будет сильно тормозить. Поэтому в Хроме нет функции отключения кэша, вместо этого Google предлагает альтернативу в виде Режима инкогнито. Разумеется, это решение устраивает не всех.
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: Отключение проверки Alive и setUpdatedText
переписываешь ПУ или не пользуешься ими
с таймерами, да перебор и не только с ними в каждой комнате по 2 дд, т, в, освещ + все остальное
на скрине все таймеры на текущий момент
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- Lerych
- Сообщения: 191
- Зарегистрирован: Чт дек 14, 2017 8:46 pm
- Откуда: Московская область, Серпухов
- Благодарил (а): 79 раз
- Поблагодарили: 24 раза
Re: Отключение проверки Alive и setUpdatedText
Завидую, Вам. У меня в проекте 300 устройств типа реле. Вот мне совершенно не обязательно в каждое устройство писать по таймеру когда поменялось состояние, я его принудительно туда пишу при смене статуса в формате 01.01.2019 12:00. Соответственно и alive на реле мне не надо.
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: Отключение проверки Alive и setUpdatedText
так убери, у меня с аливе сложно, у части есть хербит, у части нет, пришлось мудрить и это в аливе заводить
зато если с чем-то что-то алиса скажет
зато если с чем-то что-то алиса скажет
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- nightwind
- Сообщения: 333
- Зарегистрирован: Вс июн 26, 2016 4:42 pm
- Откуда: Барановичи
- Благодарил (а): 28 раз
- Поблагодарили: 52 раза
- Контактная информация:
Re: Отключение проверки Alive и setUpdatedText
закомментить одну строчку SetTimeOut и всего делов) в /mnt/mjrdm/var/www/modules/devices/SDevices_statusUpdated.php
я вообще удалил все инклады на эти пхпшки от простых устройств и дописал свой минимум
я вообще удалил все инклады на эти пхпшки от простых устройств и дописал свой минимум
- Lerych
- Сообщения: 191
- Зарегистрирован: Чт дек 14, 2017 8:46 pm
- Откуда: Московская область, Серпухов
- Благодарил (а): 79 раз
- Поблагодарили: 24 раза