我正在研究一个应用程序,跟踪由多个传感器检测到的对象。我通过消费kafka消息接收输入,并将信息保存在postgresql数据库中。
如果该对象的最后一次扫描被该位置的传感器检测到,则该对象位于该特定位置,例如:
- 1室传感器最后一次扫描的对象->表示该物体已知的最后位置是房间1
扫描是连续发生的,我们可以设置几秒到几分钟的频率。例如,对于一个在过去一小时内没有被扫描的对象。
所以我现在的问题是,我如何设计一个系统,当设备超出范围时产生某种通知?例如,如果上次检测的时间戳超过5分钟,则触发通知。
我能想到的唯一解决方案是创建一个批处理,重复检查最后一次检测时间超过5分钟的所有对象。但我想知道这是否是正确的方法,我想问是否有更好的方法。
我的应用程序使用kotlin和spring boot。
谢谢你的帮助。
你需要某种类型的心跳机制,是的。
查询所有带有"最后一次看到"时间戳的检测事件;大于阈值,当返回的结果集大于可容忍的阈值时触发警报(例如,如果您愿意接受间歇性丢失的设备,并期望在下一次扫描中找到它们)。
至于"where/how"提醒你。Slack的webhook就是一个很受欢迎的例子。Grafana可以做警报和查询你的数据库。