【发布时间】:2016-12-16 14:32:41
【问题描述】:
我有一些 raspberry pi 运行一些 python 代码。有时我的设备将无法签入。其余的 python 代码继续完美运行,但此处的代码退出。我不确定为什么?如果设备无法签入,则应重新启动,但不会。 python 文件中的其他线程继续正常运行。
class reportStatus(Thread):
def run(self):
checkInCount = 0
while 1:
try:
if checkInCount < 50:
payload = {'d':device,'k':cKey}
resp = requests.post(url+'c', json=payload)
if resp.status_code == 200:
checkInCount = 0
time.sleep(1800) #1800
else:
checkInCount += 1
time.sleep(300) # 2.5 min
else:
os.system("sudo reboot")
except:
try:
checkInCount += 1
time.sleep(300)
except:
pass
这些设备可以运行数天和数周,并且每 30 分钟会完美地检查一次,然后它们会突然停止。我的linux 计算机处于只读状态,计算机继续正常工作和运行。我的问题在这个线程中。我认为他们可能无法得到回应,这条线可能是问题
resp = requests.post(url+'c', json=payload)
我不知道如何解决这个问题,任何帮助或建议将不胜感激。
谢谢
【问题讨论】:
-
修正缩进。
-
你有任何追溯吗?我不会说 requests 是问题所在,因为在它之后有一个“catch all”异常
-
复制粘贴导致缩进错误,在python文件中是正确的。
-
好吧,除非你也在这里改正,否则帮不了你....
-
我建议您不要只接受所有可能的异常,因为它可能与问题非常相关。只需在
except块内调用traceback.print_exc()即可查看问题所在。一方面,当它尝试重新启动停止 python 进程的SystemExit时,可能只是被捕获停止重新启动。
标签: python multithreading python-requests