我是这个博客的新人,虽然我已经在这里使用了几个关于出版物的技巧。 我有一个代码可以读取GPS位置,以及来自其他设备的其他数据。在此之后,我做了一些计算并将数据存储在数据库和文本文件中。我的问题是,一段时间后它停止存储数据,但代码仍在运行。知道为什么吗? 我的代码有点广泛,但基本上它创建了两个串行变量,所以我可以读取两个不同的设备。 然后在无限循环中执行以下操作:
所有这一切都带有try catch,所以我可以将任何异常保存在另一个文本文件中。 我用来存储文本文件的代码是:
with open("datos.txt", "a") as mydata:
mydata.write("(" + str(hora)+","+str(latitud)+","+str(longitud)+",#"+str(color)+","+str(latitudReal)+","+str(longitudReal)+","+str(libre)+","+espectro+")" + ", " + cc1 + "\n")
mydata.flush()
mydata.close()
存储在mysql数据库中的代码是:
try:
sql2 = "INSERT INTO pichincha101(hora, latitud, longitud, color, latitudReal, longitudReal, porcentaje, espectro) VALUES ('"+str(hora)+"','"+str(latitud)+"','"+str(longitud)+"','#"+str(color)+"','"+str(latitudReal)+"','"+str(longitudReal)+"','"+str(libre)+"','"+espectro+"')"
cur.execute(sql2)
db.commit()
except Exception as e:
print "error INSERT mysql"
print e
我还要删除一些数组并清理ram,然后再使用以下代码进行清理:
del res1
del res2
del ampp
del amp1
os.system("echo 3 > /proc/sys/vm/drop_caches")
即使我不包含我刚刚发布的最后一个代码部分,也是同样的问题。
高级时,谢谢你的帮助。
答案 0 :(得分:0)
也许你的mysql(SQL_TIMEOUT)或服务器设置有超时?例如,当我在Apache工作时,我必须调整max_execution_time变量。干杯!
答案 1 :(得分:0)
解决方案是从我的串行设备中取出缓冲区。希望它可以帮助别人。