2014-01-28 2 views
0

Я новичок в этом блоге, хотя я использовал несколько советов о публикациях, сделанных здесь. У меня есть код, который считывает положение GPS и другие данные с другого устройства. После этого я делаю некоторые вычисления и сохраняю данные в базе данных и текстовом файле. Моя проблема в том, что через некоторое время он перестает хранить данные, но код продолжает работать. Любая идея почему? Мой код немного расширен, но в основном он создает две последовательные переменные, поэтому я могу читать два разных устройства. Тогда в бесконечном цикле я сделать следующее:Raspberry pi python mysql код перестает экономить данные через некоторое время

  1. открытой базы данных
  2. обработки и анализа данных
  3. данные хранятся в текстовом файле
  4. хранения данных в MySQL
  5. тесная связь

Все это с попыткой поймать, поэтому я могу сохранить любое исключение в другом текстовом файле. кода я использую для хранения ИНА текстового файла:

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 

Я также удалить некоторые массивы и очистки барана, прежде чем делать он снова с этим кодом:

del res1 
del res2 
del ampp 
del amp1 
os.system("echo 3 > /proc/sys/vm/drop_caches") 

Это та же проблема, даже если я не буду включать последний раздел кода, который я только что опубликовал.

В расширенном, благодарю вас за помощь.

ответ

0

Возможно, у вас есть тайм-аут в настройках mysql (SQL_TIMEOUT) или вашего сервера? Например, когда я работаю в Apache, мне нужно настроить переменную max_execution_time. Ура!

0

Решение было освобождать буферы от моих последовательных устройств. Надеюсь, это поможет кому-то другому.