试图让一个循环与web.py同时运行

时间:2013-08-06 01:51:31

标签: python

在我的小项目的这个阶段,我想让web.py显示从连接到我的Raspberry Pi的一些传感器中恢复的一些信息。我希望定期检索信息,所以我在我的代码底部放了一个循环,用我的库刷新传感器,将读数粘在一个字典中,然后睡10秒钟。

while True:
    onewiretemp.refreshSensor()
    temperatures = onewiretemp.sensorTemp
    time.sleep(10)

不幸的是,这样做的副作用是当我运行程序并尝试加载页面时,我的循环运行并且页面永远不会加载。我还必须手动杀死进程以阻止它。我认为这是因为循环无限期地运行。

我的其余代码基本上是web.py网站上的教程和一些模板内容。当我禁用循环并手动添加格式与我的onewiretemp模块的输出相同的数据时,该部分有效。

有没有更好的方法来做到这一点并没有破坏一切?

1 个答案:

答案 0 :(得分:1)

在单独的线程中运行传感器轮询循环。读取或写入时,请用锁定保护温度。您的主web.py脚本可以获取锁定并获取最新数据。