设置:许多设备(arduino,无关紧要)连接到我的数据库以更新其当前状态:电压,温度等...和last_update列。
我要尝试做的是知道设备何时离线。意思是当current_time-last_update优于10秒(恒定值)时,我可以将“ device_state”更新为“ offline”
做到这一点的最佳方法是什么。我发现的最佳方法是创建一个作业,该作业每分钟左右选择一次last_update早于10秒的设备。有更好的方法吗?
这是一个具有Web前端的监视系统。我需要实时(或几乎实时)知道哪些设备处于脱机状态。
谢谢
答案 0 :(得分:0)
您可以使用视图实现此功能:
create view v_t as
select t.*,
( last_update < now() - interval '10 second' ) as is_offline
from t;
查询视图时,该列将自动更新。
许多数据库支持计算列。 Postgres还不是其中之一。
还有一种使用功能相似的函数的方法(有关详细信息,请参见here)。