Python 不断更新的日志文本文件流

Python 不断更新的日志文本文件流,python,logging,streaming,Python,Logging,Streaming,我制作了一个程序,将传感器数据保存在日志文件(服务器站点)中。 该文件存储在临时目录(Ram磁盘)中。 每行包含一个时间戳和一个JSON字符串。 更新速率取决于传感器数据,但最快的是每0.5s更新一次。 我想做的是,将此文件中的每个更新流式传输到客户端应用程序。 我想到了几种方法: 可能是服务器站点上的共享文件夹(samba)和脚本(客户端站点),只需每隔0.5秒检查一次文件 可能是服务器上运行的另一个服务器程序,检查更新(但我不想这样做,因为Raspberry Pi很慢) 以前有没有人做过

我制作了一个程序,将传感器数据保存在日志文件(服务器站点)中。 该文件存储在临时目录(Ram磁盘)中。 每行包含一个时间戳和一个JSON字符串。 更新速率取决于传感器数据,但最快的是每0.5s更新一次。 我想做的是,将此文件中的每个更新流式传输到客户端应用程序。 我想到了几种方法:

  • 可能是服务器站点上的共享文件夹(samba)和脚本(客户端站点),只需每隔0.5秒检查一次文件
  • 可能是服务器上运行的另一个服务器程序,检查更新(但我不想这样做,因为Raspberry Pi很慢)

以前有没有人做过类似的事情,可以分享一些想法?是否已经有了用于此的python模块(它会像流一样打开一个文件,如果某个文件发生了更改,那么流会给出它)?不断检查文件的更新是否明智

将日志文件流式传输到您可以使用的应用程序

tail -n 1000000 -f | application
(这将持续检查文件中的新行,然后将它们流式传输到应用程序,然后再次挂起,直到出现新行。)


但这当然会在服务器上增加负载,因为查询是否有新行将被中继到Raspberry Pi来执行它。事实上,服务器上的一个小程序(用C编写,具有良好的
睡眠
)比通过网络查询新行的负载要少。

我正在做类似的事情。 我的raspberry pi+客户端上运行着一台服务器,它解析服务器的输出并将其发送到web上的另一台服务器。
我所做的是本地服务器程序将其数据分块写入。
每次它写入数据(顺便说一句,也是在tmpfs上)时,它都会将数据写入不同的文件中,因此当其他东西写入该文件时,我在尝试解析该文件时不会出错。。

写入文件后,它启动客户机程序以解析和发送数据(使用文件名作为参数的子流程)。 这对我很有用