我有一个在使用 Azure IOT SDK 的 revPi 上运行的 python 脚本。该脚本基本上接受来自 .json 文件的一堆 modbus 寄存器,添加一些属性并将其发送到 Azure IOT 中心进行分析。
该脚本目前过于依赖网络连接,并且由于基础设施限制,连接不可靠,并且经常导致脚本经常死机/中止。如何使脚本在这个糟糕的互联网连接上运行?使用的主要库是 pymodbus 和 iothub_client。
我有一个在使用 Azure IOT SDK 的 revPi 上运行的 python 脚本。该脚本基本上接受来自 .json 文件的一堆 modbus 寄存器,添加一些属性并将其发送到 Azure IOT 中心进行分析。
该脚本目前过于依赖网络连接,并且由于基础设施限制,连接不可靠,并且经常导致脚本经常死机/中止。如何使脚本在这个糟糕的互联网连接上运行?使用的主要库是 pymodbus 和 iothub_client。
根据检查网络连接,我建议这样的事情;
import urllib2
if(internet_on())
CallFunction()
else
internet_on()
def internet_on():
try:
urllib2.urlopen('http://216.58.192.142', timeout=1)
return True
except urllib2.URLError as err:
return False
“216.58.192.142”是一个谷歌地址,但你可以使用任何可靠的东西,比如 Azure,因为这是你发送数据的地方。
使用 while 循环或添加线程睡眠来停止它经常检查可能更明智。
希望这可以帮助。