Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python flask for IOT应用程序创建通知系统_Python_Apache Spark_Flask_Apache Kafka_Celery - Fatal编程技术网

使用Python flask for IOT应用程序创建通知系统

使用Python flask for IOT应用程序创建通知系统,python,apache-spark,flask,apache-kafka,celery,Python,Apache Spark,Flask,Apache Kafka,Celery,我创建了一个基于flask的物联网应用程序,其中设备通过RESTAPI定期发送数据,数据存储在数据库中 我想开发一个通知系统,当某个特定设备的阈值超过时,它会向移动应用程序发送通知 每个设备的阈值和时间窗口存储在DB中 例如: 如果设备x在过去5分钟内的温度高于30℃,则向用户发送通知 使用Python解决这个问题的最佳方法是什么 目前,我正在使用芹菜节拍,每1秒运行一个worker,它从数据库读取设备数据和用户配置的阈值,并基于该值通过PYFCM向应用程序发送通知 我觉得从长远来看,这种方法是

我创建了一个基于flask的物联网应用程序,其中设备通过RESTAPI定期发送数据,数据存储在数据库中

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

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

例如:

如果设备x在过去5分钟内的温度高于30℃,则向用户发送通知

使用Python解决这个问题的最佳方法是什么

目前,我正在使用芹菜节拍,每1秒运行一个worker,它从数据库读取设备数据和用户配置的阈值,并基于该值通过PYFCM向应用程序发送通知

我觉得从长远来看,这种方法是不可伸缩的。

这并不是你要问的“python”或“flask”问题

这是建筑方面的事情。而且,在这之后,这是一个设计的东西

因此,在架构上,典型的物联网数据是测量值的时间序列,标记有一些属性,以便根据来源、组、口味进行区分

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

简而言之,这就是架构配置

现在,我们可以假设最好的设计解决方案是什么。 理想情况下,这应该是一个适合存储时间序列的工具&同时还配备了统计分析工具,在完美的情况下——也有通知适配器/传输(或者可能是一组可以轻松绑定在一起的单独工具)

幸运的是,它们已经存在:查找Timeseries数据库

我的个人偏好是XDB,但也有其他的,比如普罗米修斯,这个最近推出的AWS服务,等等。谷歌一应俱全

实际上,它们都配备了不同类型的统计分析工具(例如,在XDB中,您可以立即使用查询语言进行分析,此外还有一个功能强大的流/批处理程序,甚至可以超越此功能)

其中大多数还配备了通知仪器(例如,上述流入流处理器具有内置的统计事件通知操作)

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

当然,你总是可以用你拥有的工具来实现它

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

欢迎使用StackOverflow,而且。。。在这里申请。StackOverflow是针对特定编程问题的知识库,而不是设计、编码、研究或教程资源。一旦你有了要发布的代码,有了一个特定的问题,那么你就有了一篇很好的文章。