使用Python flask为物联网应用程序创建通知系统

2024-06-28 20:05:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个基于flask的物联网应用程序,设备通过restapi定期发送数据,数据存储在DB中。你知道吗

我想开发一个通知系统,每当某个特定设备的阈值超过时,就会向移动应用程序发送通知。你知道吗

每个设备的阈值和时间窗口存储在DB中

示例:

如果设备x在过去5分钟内的温度高于30摄氏度,则向用户发送通知。你知道吗

使用Python解决这个问题的最佳方法是什么?你知道吗

目前,我正在使用芹菜节拍和运行工人每1秒读取设备数据和阈值由用户配置的数据库,并根据该值发送通知到应用程序通过PYFCM。你知道吗

从长远来看,我不认为这种方法是可伸缩的。你知道吗


Tags: 数据方法用户restapi应用程序flask示例db
1条回答
网友
1楼 · 发布于 2024-06-28 20:05:51

这不是你要问的“python”或“flask”之类的问题。你知道吗

那是建筑的东西。而且,在它之后,这是一个设计的东西。你知道吗

因此,架构上典型的物联网数据是测量值的timeseries,标记了一些属性,以便根据来源、组、口味进行区分。你知道吗

随着时间序列的建立(从设备接收并存储在DB中),您通常希望使用统计方法对其进行处理,以构建一些可供分析的函数。你知道吗

简言之,这就是建筑风格。你知道吗

现在,我们可以假设最好的设计方案是什么。 理想情况下,这应该是一种适合存储时间序列的工具,而且还配备了统计分析工具,在最理想的情况下,还应该配备通知适配器/传输工具(也可以是一堆可以轻松绑定在一起的独立工具)。你知道吗

幸运的是,它们已经存在:查找Timeseries数据库。你知道吗

我个人的偏好是XDB,但也有其他的,比如普罗米修斯,这个最近推出的AWS服务,等等。你知道吗

实际上,所有这些工具都配备了不同类型的统计分析工具(例如,在InfluxDB中,您可以立即使用查询语言进行分析,此外还有一个功能强大的流/批处理处理器,甚至可以超越这些工具)。你知道吗

它们中的大多数还配备了通知仪器(例如,上述流入流处理器具有关于统计事件的内置通知动作)。你知道吗

因此,如果您正在寻找长期/可扩展的解决方案(顺便说一句,预期的规模是多少?)-这是你最好的选择之一。但需要一些努力/重构。你知道吗

当然,你总是可以用你现有的工具来实现它。你知道吗

您的“polling workers”解决方案目前看来还不错,接下来您可以使用特定于您的平台的统计lib(抱歉,不熟悉Python,而且您的DB也不知道-无法给出具体的建议来使用哪个),您就可以了。你知道吗

相关问题 更多 >