我制作了一个将传感器数据保存在日志文件(服务器站点)中的程序。 该文件存储在临时目录(Ram-Disk)中。 每行包含一个时间戳和一个JSON字符串。 更新速率取决于传感器数据,但最快速度为每0.5秒。 我想要做的是,将此文件中的每个更新流式传输到客户端应用程序。 我有几种方法:
有没有人可能之前做过这样的事情并且可以分享一些想法?是否可能有一个python模块(它打开一个像流一样的文件,如果有什么改变,那么这个流是给它的)?经常检查文件是否更新是否明智?
答案 0 :(得分:0)
要将日志文件流式传输到应用程序,您可以使用
tail -n 1000000 -f | application
(这将不断检查文件中的新行,然后将它们流式传输到应用程序,然后再次挂起,直到出现新行。)
但这当然会在您的服务器上加载,因为查询是否有新行将被转发到Raspberry Pi执行它。服务器本身的一个小程序(用C语言编写,有一个不错的sleep
)实际上可能比通过网络查询新行更少负担。
答案 1 :(得分:0)
我正在做那样的事情。
我在我的raspberry pi +客户端上运行了一个服务器,它解析服务器的输出并将其发送到Web上的另一台服务器。
我正在做的是本地服务器程序以块的形式写出它的数据。
每次写入数据时(顺便说一句,也在tmpfs上),它会将其写入不同的文件,因此在尝试解析文件时我不会收到错误,而其他内容正在写入该文件。
在写入文件之后,它启动客户端程序以解析和发送数据(使用子进程将文件名作为参数)。
对我很有用。