From: Roman Bazalevsky Date: Thu, 23 Jan 2020 15:50:50 +0000 (+0300) Subject: Переход на короткоживущие соединения с sqlite - на MT7688 возникают блокировки. X-Git-Url: https://git.rvb.name/weathermon.git/commitdiff_plain/1bcc16ab2539d2cddb7589f72487cc81ce69c171?ds=inline;hp=21260a74f42a65603317d1938fac675d5eef6635 Переход на короткоживущие соединения с sqlite - на MT7688 возникают блокировки. --- diff --git a/bin/weathermon b/bin/weathermon index dbffa82..d2b5374 100755 --- a/bin/weathermon +++ b/bin/weathermon @@ -103,19 +103,23 @@ function submitValue(type,id,param,val) local result,code = http.request (url) - if code ~= 200 and backlog_con then + 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') + backlog_con:close() end end if logdb then + 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') + log_con:close() end end @@ -337,17 +341,19 @@ if backlogdb then if not file_exists(backlogdb) then touch(backlogdb) end - backlog_con = assert(env:connect(backlogdb)) + local backlog_con = assert(env:connect(backlogdb)) backlog_con:execute("CREATE TABLE queue(time_stamp datetime,sensor_id varchar(16),sensor varchar(16),param varchar(16),value float)") + backlog_con:close() end if logdb then if not file_exists(logdb) then touch(logdb) end - log_con = assert(env:connect(logdb)) + local log_con = assert(env:connect(logdb)) log_con:execute("CREATE TABLE log(time_stamp datetime,sensor_id varchar(16),sensor varchar(16),param varchar(16),value float)") log_con:execute("CREATE INDEX log_idx ON log(sensor_id,sensor,param,time_stamp)") + log_con:close() end if web_url then