Проверьте, больше ли разница между текущим временем и сохраненным значением времени, чем фиксированное значение. - PullRequest
0 голосов
/ 22 сентября 2018

Настройка: несколько устройств (arduino, не имеет значения) подключаются к моей базе данных, чтобы обновить их текущее состояние: напряжение, температуру и т. Д. И столбец last_update.

Что япопытка сделать это знать, когда устройство выходит из строя.То есть, когда current_time-last_update превосходит, скажем, 10 секунд (постоянное значение), я могу обновить «device_state» до «offline»

Каков наилучший оптимальный способ сделать это.Лучший способ, который я нашел, - создать задание, которое каждую минуту или около того выбирает все устройства, которые last_update старше 10 секунд.Есть ли лучший способ?

Это система мониторинга с веб-интерфейсом.Мне нужно знать в режиме реального времени (или почти в реальном времени), какие устройства отключены.

Спасибо

1 Ответ

0 голосов
/ 22 сентября 2018

Вы можете реализовать эту функцию, используя представление:

create view v_t as
    select t.*,
           ( last_update < now() - interval '10 second' ) as is_offline
    from t;

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

Многие базы данных поддерживают вычисляемые столбцы.Postgres еще не один из них.

Существует также метод, использующий функцию, которая делает что-то очень похожее (подробности см. здесь ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...