Raspberry pi python mysql代码在一段时间后停止保存数据

时间:2014-01-28 17:46:27

标签: python mysql raspberry-pi mysql-python raspbian

我是这个博客的新人,虽然我已经在这里使用了几个关于出版物的技巧。 我有一个代码可以读取GPS位置,以及来自其他设备的其他数据。在此之后,我做了一些计算并将数据存储在数据库和文本文件中。我的问题是,一段时间后它停止存储数据,但代码仍在运行。知道为什么吗? 我的代码有点广泛,但基本上它创建了两个串行变量,所以我可以读取两个不同的设备。 然后在无限循环中执行以下操作:

  1. 打开数据库
  2. 操纵和分析数据
  3. 将数据存储在txt文件中
  4. 将数据存储在mysql中
  5. 关闭连接
  6. 所有这一切都带有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")
    

    即使我不包含我刚刚发布的最后一个代码部分,也是同样的问题。

    高级时,谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

也许你的mysql(SQL_TIMEOUT)或服务器设置有超时?例如,当我在Apache工作时,我必须调整max_execution_time变量。干杯!

答案 1 :(得分:0)

解决方案是从我的串行设备中取出缓冲区。希望它可以帮助别人。