Страница 3 из 4

Re: Время изменения свойства

Добавлено: Пн авг 15, 2022 6:33 pm
AK1
Любую задачу можно решить несколькими способами.
В данном случае можно при каждом изменении дописывать необходимый параметр контроля.
А можно периодически делать проверку всего разом.
Это зависит от потребности владельца системы. Его хотелок.

Можно написать красивый универсальный скрипт, но который будет долго выполняться и грузить систему, а можно написать длинный, некрасивый, но выполняющийся гораздо быстрее.

У меня также возникла проблема контроля устройств. Некоторые и ранее контролировал по присутствию в сети (периодичность 20 мин.), но отвалился провод от сенсора, прибор в сети, а показаний нет.

2-я проблема. Неделю назад пропал интернет. Естественно перезагрузил роутер. Нет синхронизации времени. Некоторые контроллеры потеряли время и перестали адекватно работать. Срочно пришлось делать свой локальный ntp сервер с часами. Хорошо хоть, что часть устройств в системе 1М со своим локальным сервером ntp

Re: Время изменения свойства

Добавлено: Пн авг 15, 2022 6:41 pm
Logrus
AK1 писал(а):
Пн авг 15, 2022 6:33 pm
Любую задачу можно решить несколькими способами.
В данном случае можно при каждом изменении дописывать необходимый параметр контроля.
А можно периодически делать проверку всего разом.
Это зависит от потребности владельца системы. Его хотелок.

Можно написать красивый универсальный скрипт, но который будет долго выполняться и грузить систему, а можно написать длинный, некрасивый, но выполняющийся гораздо быстрее.
у тс куча кода которая рулит свойством аливе

и поверх этого наговнокожена офигительная логика с кучей запросов каждые 5 секунд (даже если это не в системстатес или реже, все равно это можно одним селектом в табличку в памяти, а не кучей по всем таблицам как в примере)
для контроля значения свойства аливе и формирования текста
это ужасно :shock:

п.с. юзеры применяют функции, а то что в них происходит не видят и ....
п.п.с. а то что нужен контроль всего и оно не может быть нормально описано только аливе, т.к. есть и таймштамп и уровень заряда, хартбиты, уровень сигнала, пинг или вообще отсутствие всего выше и только управление из мдм без хартбита, каллбека
поэтому все выше в аливе универсально не запихнуть
поэтому проще разделять на разные свойства (и тут ПУ с аливе (((( )
а уже это без оверхедной долбежки бд табличек на хдд можно одним селектом в памяти сделать ;) (почувствуй разницу)

Re: Время изменения свойства

Добавлено: Пн авг 15, 2022 10:01 pm
Bagir
Logrus писал(а):
Пн авг 15, 2022 6:08 pm
куча нафиг не нужных запросов, поллингом а не реакция по изменению свойства
Я так понял камень в мой огород :D И это не про функцию, а про периодический запуск сценария поиска дохляков. Снимаю шляпу, это правда. Сам ненужный поллинг не приветствую. Каждый часик вроде запускается. Когда давно писал это, оставил себе заметку переделать вызов по возникновению соответствующих событий. Вот только событий много, поэтому руки так и не дошли. Но заметочка висит, ждет своего часа.
Это не по теме, так что лучше забудем :roll: Изначально писал этот скрипт чтобы табличку составлять для домашних страниц.
А что на счет функции? Правильно ли я понимаю связки таблиц? У меня сейчас всё берется сразу из pvalues по PROPERTY_NAME, длинный путь получения свойства objects>properties>pvalues не выполняется. Колонка PROPERTY_NAME заполнена у всех.

Re: Время изменения свойства

Добавлено: Пн авг 15, 2022 10:17 pm
xor
Bagir писал(а):
Пн авг 15, 2022 10:01 pm
Logrus писал(а):
Пн авг 15, 2022 6:08 pm
куча нафиг не нужных запросов, поллингом а не реакция по изменению свойства
Я так понял камень в мой огород :D И это не про функцию, а про периодический запуск сценария поиска дохляков. Снимаю шляпу, это правда. Сам ненужный поллинг не приветствую. Каждый часик вроде запускается. Когда давно писал это, оставил себе заметку переделать вызов по возникновению соответствующих событий. Вот только событий много, поэтому руки так и не дошли. Но заметочка висит, ждет своего часа.
Это не по теме, так что лучше забудем :roll: Изначально писал этот скрипт чтобы табличку составлять для домашних страниц.
А что на счет функции? Правильно ли я понимаю связки таблиц? У меня сейчас всё берется сразу из pvalues по PROPERTY_NAME, длинный путь получения свойства objects>properties>pvalues не выполняется. Колонка PROPERTY_NAME заполнена у всех.
ну хранение в нескольких местах одного и того же (я про проперти_нейм) это вообще нарушение построения реляционных бд) а так в системе, к сожалению, затруднён доступ (вернее, упущен при начальной реализации) к времени обновления свойства( теперь приходится выкручиваться. а для объектов создавать спецсвойства типа ластапдатед, дублирующие то же время, что и в поле апдатед его же в пвалюес.
хотя я в счетчиках и искусственно пишу в поле апдатед при "закрытии" отчетного периода
2022-08-15_22-16-17.png
2022-08-15_22-16-17.png (32.58 КБ) 783 просмотра

Re: Время изменения свойства

Добавлено: Пн авг 15, 2022 10:29 pm
Bagir
xor писал(а):
Пн авг 15, 2022 10:17 pm
ну хранение в нескольких местах одного и того же (я про проперти_нейм) это вообще нарушение построения реляционных бд)
Как я понимаю, идея PROPERTY_NAME была в том, чтобы лишний раз не шариться по всем таблицам objects>properties>pvalues
xor писал(а):
Пн авг 15, 2022 10:17 pm
для объектов создавать спецсвойства типа ластапдатед, дублирующие то же время, что и в поле апдатед его же в пвалюес.
Не всегда возможно. Например в объекты класса Rooms стекаются всевозможные свойства температуры, влажности, освещенности и ещё куча всего. Но при этом, ластапдатед интересует не общий, а для каждого свойства.

Re: Время изменения свойства

Добавлено: Пн авг 15, 2022 11:05 pm
Logrus
Bagir писал(а):
Пн авг 15, 2022 10:01 pm
А что на счет функции? Правильно ли я понимаю связки таблиц? У меня сейчас всё берется сразу из pvalues по PROPERTY_NAME, длинный путь получения свойства objects>properties>pvalues не выполняется. Колонка PROPERTY_NAME заполнена у всех.
Снимок.PNG
Снимок.PNG (131.42 КБ) 778 просмотров
ну у меня всегда сразу создается верная запись в пропнейм и вообще эта строка в пвалуес
как и не может быть точки в имени свойства или объекта (проверь кст создав такое ;) ) или в единственном месте где такое юзается убрано класс.объект.свойство

у меня ядро мдм очень отличается во многих мелочах и не только ¯\_(ツ)_/¯

п.с. у меня все таблички бд в памяти и к выше мне без разницы откуда читать кеш_валуес или пвалуес
для виндовс с хдд будет разница

Re: Время изменения свойства

Добавлено: Пн авг 15, 2022 11:53 pm
Bagir
Logrus писал(а):
Пн авг 15, 2022 11:05 pm
ну у меня всегда сразу создается верная запись в пропнейм
Несколько лет назад с этим точно были проблемы. Но на сколько я знаю всё уже давно исправлено.
Logrus писал(а):
Пн авг 15, 2022 11:05 pm
не может быть точки в имени свойства или объекта
У меня тоже этот вопрос был. Но сделал по аналогии со штатными.
Logrus писал(а):
Пн авг 15, 2022 11:05 pm
класс.объект.свойство
Вот про это и подумал

Re: Время изменения свойства

Добавлено: Пн авг 15, 2022 11:58 pm
Logrus
Bagir писал(а):
Пн авг 15, 2022 11:53 pm
Logrus писал(а):
Пн авг 15, 2022 11:05 pm
ну у меня всегда сразу создается верная запись в пропнейм
Несколько лет назад с этим точно были проблемы. Но на сколько я знаю всё уже давно исправлено.
создай классовое свойство и покажи отсутствующие записи в пвалуес на него, пока не сделаешь сг их не будет
не исправлено до конца, сейчас ситуация есть объект, есть классовое свойство, но нет записи в пвалуес на него пока не было сг
что тоже приводит к ошибкам

https://github.com/sergejey/majordomo/b ... s.php#L958
если сразу создавать записи, то не было б ошибки эти долгие годы, и вообще бы иначе не нужен как и проверка наличия пропнейм, т.к. уже все создано

Re: Время изменения свойства

Добавлено: Вт авг 16, 2022 12:23 am
Bagir
Logrus писал(а):
Пн авг 15, 2022 11:58 pm
создай классовое свойство и покажи отсутствующие записи в пвалуес на него, пока не сделаешь сг их не будет
Точно, теперь до конца вспомнил эту старую тему. Было большое обсуждение. Спасибо.

Re: Время изменения свойства

Добавлено: Ср авг 17, 2022 5:24 pm
Logrus
выше ксор упоминал про принципы реляционных бд, вот такая избыточность для упрощения запросов допускается
но!!!! т.к. у нас одно и то же в нескольких местах, что б не было ошибок оно должно быть актуальным!

и цепочка там несколько больше, не только поле пропнейм в пвалюес, но и ключ р: в кеш_валюес
расписывать это все увы долго и муторно, там много и взаимосвязано