本地“安心”服务

本地“安心”服务

我有一个恒温器,它轮询串行接口的温度。一次轮询此接口的频率不能超过三十秒。有几种不同的 python 脚本需要访问彼此独立运行的温度(例如金字塔、芹菜任务)。这些脚本都不够智能,无法避免传感器过载。因此,实施选项如下:

  1. 拥有一个本地网络静态服务,可以由任何系统脚本轮询并提供最佳的必要温度,但不会在幕后频繁地轮询实际传感器(这让我觉得有点矫枉过正,但具有理想的功能)

  2. 将温度存储在内存数据库中,并让脚本每三十秒更新一次存储的温度(这也是仅获取一个整数的重量级选项)

  3. 编写一个处理所有逻辑并退出的一次性脚本(需要一个外部文件来存储上次传感器轮询发生时的情况。比 #2 好不了多少,并且可能会因不必要的写入而磨损 rpi SD 卡)

  4. 是否有一些内置的轻量级 Linux 功能可以替代 #1(例如 dmesg w/ cron)?

答案1

您始终可以创建一个包含某些值的文件以在 /var/run 中共享;该策略由多个服务/守护程序使用。您可能希望在启动时在 /var/run 中创建一个子目录,如果您需要将其 chown 给非 root 用户,则可能是 /var/run/temporary。

将其存储在内存中的替代方法是使用redis,但它是多余的。

还有一种选择是使用共享内存开发 C 程序,但这种需求似乎太简单了。

相关内容