我有一个长时间运行的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()
的Raspberry Pi专用于花园,基本上是唯一占用资源的东西。所以我知道我有做某事的余地,但我不知道该做什么。一旦循环发现已更新配置变量,循环就可以进行指数回退来继续检查交互,而不是等待60秒,但这似乎并没有太大改进。
是否有更好的方法来跳转到这个长时间运行的进程中?