我有一个长时间运行的 python 进程在树莓派(控制花园)上无头运行,如下所示:
from time import sleep
def run_garden():
while 1:
/* do work */
sleep(60)
if __name__ == "__main__":
run_garden()
60 秒的睡眠时间足以让我的花园发生任何变化(湿度、空气温度、打开泵、关闭风扇等),但是如果我想手动覆盖这些东西怎么办?
目前,在我的/* do work */
循环中,我首先调用另一台保存配置变量的服务器,我可以通过 Web 控制台更新这些配置变量,但它缺乏任何实时感,因为它依赖于 60 秒循环(例如,您可能会更新 Web 控制台,然后等待 45 秒以使所需的效果生效)
树莓派运行run_garden()
专用于花园,它基本上是唯一占用资源的东西。所以我知道我有空间做某事,我只是不知道是什么。
一旦循环发现配置变量已更新的事实,循环就可以进行指数退避以继续检查交互,而不是等待 60 秒,但感觉并没有好很多。
有没有更好的方法可以基本上进入这个长期运行的过程?