end
end
+function unlock_db(file)
+
+ print("Unlocking DB "..file)
+ os.execute("sqlite3 -readonly \""..file.."\" \".backup /tmp/weathermon.db\"")
+ os.execute("mv /tmp/weathermon.db \""..file.."\"")
+
+end
+
function submitValue(type,id,param,val)
val = tonumber(val)
if code ~= 200 and backlogdb then
printLog("writing record to backlog...")
local backlog_con = assert(env:connect(backlogdb))
- backlog_con:execute('BEGIN TRANSACTION')
- backlog_con:execute(string.format("INSERT INTO queue(time_stamp,sensor_id,sensor,param,value) VALUES (datetime('now','localtime'),'%s','%s','%s',%f)",id,type,param,val))
- backlog_con:execute('COMMIT')
+ local n,err = backlog_con:execute(string.format("INSERT INTO queue(time_stamp,sensor_id,sensor,param,value) VALUES (datetime('now','localtime'),'%s','%s','%s',%f)",id,type,param,val))
backlog_con:close()
+
+ if err == "LuaSQL: database is locked" then
+ unlock_db(backlogdb);
+ end
+
end
end
if logdb then
+ print(logdb)
local log_con = assert(env:connect(logdb))
- log_con:execute('BEGIN TRANSACTION')
- log_con:execute(string.format("INSERT INTO log(time_stamp,sensor_id,sensor,param,value) VALUES (datetime('now','localtime'),'%s','%s','%s',%f)",id,type,param,val))
- log_con:execute('COMMIT')
+ local n,err = log_con:execute(string.format("INSERT INTO log(time_stamp,sensor_id,sensor,param,value) VALUES (datetime('now','localtime'),'%s','%s','%s',%f)",id,type,param,val))
log_con:close()
+
+ if err == "LuaSQL: database is locked" then
+ unlock_db(logdb);
+ end
+
end
end
break
end
- pcall(function ()
+-- pcall(function ()
printLog("Received: "..line)
if startswith(line,'{') then
io.close(f)
end)
end
- end)
+-- end)
end