Commit 15622bfa authored by 周尚's avatar 周尚

optimize date2time

optimize ngx.timer
parent 956f2471
...@@ -26,17 +26,21 @@ local tk_sync = loadmod('tk_sync') ...@@ -26,17 +26,21 @@ local tk_sync = loadmod('tk_sync')
local delay = 5 -- delaytime -- local delay = 5 -- delaytime
local interval_time = '0030' -- time to run, here is 12:00 for each day -- -- local settledate = "2018-08-16"
-- local settledate = "2018-08-16"
local settledate = os.date('%Y-%m-%d', os.time()) -- local now_time = '0030' -- time to run, here is 12:00 for each day
local settletime = zx_base:date2time(settledate) local nxt_time = zx_base:date2time(os.date("%Y-%m-%d 00:30:00", os.time()+24*60*60))
local now_time = os.time();
local delay = nxt_time - now_time;
-- local settledate = os.date('%Y-%m-%d', os.time())
-- local now_time = zx_base:date2time(settledate)
local handler local handler
handler = function(premature, interval_time, settletime) handler = function(premature, now_time)
if not premature then if not premature then
local nowtime = os.date("%H%M") -- if nowtime == now_time then
if nowtime == interval_time then
-- settle features start -- settle features start
...@@ -59,25 +63,29 @@ handler = function(premature, interval_time, settletime) ...@@ -59,25 +63,29 @@ handler = function(premature, interval_time, settletime)
-- node_smsvip: run() -- node_smsvip: run()
-- node_vipacct: run() -- node_vipacct: run()
-- tk_sync: run() tk_sync: run()
-- node_card: run(settletime) node_card: run(now_time)
-- node_ticket: run(settletime) node_ticket: run(now_time)
-- tk_sdt: run(settletime) tk_sdt: run(now_time)
local handle = io.popen("curl localhost:8080/settle") -- local handle = io.popen("curl localhost:8080/settle")
if handle then -- if handle then
handle:close() -- handle:close()
end -- end
-- -- reset now_time
-- now_time = tostring(tonumber(now_time) - 1)
-- reset interval_time
interval_time = tostring(tonumber(interval_time) - 1)
-- reset settle time -- reset settle time
settledate = os.date('%Y-%m-%d', os.time()) -- settledate = os.date('%Y-%m-%d', os.time())
settletime = zx_base:date2time(settledate) -- now_time = zx_base:date2time(settledate)
end
local ok, err = ngx.timer.at(delay, handler, interval_time, settletime) -- end
-- nxt_time = zx_base:date2time(os.date("%Y-%m-%d 00:30:00", os.time()+24*60*60))
-- now_time = os.time();
-- delay = nxt_time - now_time;
local ok, err = ngx.timer.every(24 * 60 * 60, handler, now_time)
if not ok then if not ok then
ngx.log(ngx.ERR, "failed to create the timer:", err) ngx.log(ngx.ERR, "failed to create the timer:", err)
return return
...@@ -85,8 +93,8 @@ handler = function(premature, interval_time, settletime) ...@@ -85,8 +93,8 @@ handler = function(premature, interval_time, settletime)
end end
end end
if ngx.worker.id() == 1 then if ngx.worker.id() == 0 then
local ok, err = ngx.timer.at(delay, handler, interval_time, settletime) local ok, err = ngx.timer.at(delay, handler, now_time)
if not ok then if not ok then
ngx.log(ngx.ERR, "failed to create the timer:", err) ngx.log(ngx.ERR, "failed to create the timer:", err)
return return
......
...@@ -22,7 +22,7 @@ local function sdt_sql(tk_biz, tk_control, total_time) ...@@ -22,7 +22,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
-- 新建mysql连接 -- 新建mysql连接
local db_biz, err = mysql:new() local db_biz, err = mysql:new()
if not db_biz then if not db_biz then
zx_base:log("S", "failed to instantiate mysql: ", err) ngx.log(ngx.ERR, "failed to instantiate mysql: ", err)
return false return false
end end
...@@ -40,14 +40,14 @@ local function sdt_sql(tk_biz, tk_control, total_time) ...@@ -40,14 +40,14 @@ local function sdt_sql(tk_biz, tk_control, total_time)
charset = 'utf8' charset = 'utf8'
} }
if not ok then if not ok then
zx_base:log("S", json.encode(tk_biz), ":", err, errcode, sqlstate) ngx.log(ngx.ERR, json.encode(tk_biz), ":", err, errcode, sqlstate)
return return
end end
-- 新建mysql连接 -- 新建mysql连接
local db_control, err = mysql:new() local db_control, err = mysql:new()
if not db_control then if not db_control then
zx_base:log("S", "failed to instantiate mysql: ", err) ngx.log(ngx.ERR, "failed to instantiate mysql: ", err)
return false return false
end end
...@@ -65,7 +65,7 @@ local function sdt_sql(tk_biz, tk_control, total_time) ...@@ -65,7 +65,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
charset = 'utf8' charset = 'utf8'
} }
if not ok then if not ok then
zx_base:log("S", json.encode(tk_control), ":", err, errcode, sqlstate) ngx.log(ngx.ERR, json.encode(tk_control), ":", err, errcode, sqlstate)
return return
end end
...@@ -77,7 +77,7 @@ local function sdt_sql(tk_biz, tk_control, total_time) ...@@ -77,7 +77,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
shops, err, errcode, sqlstate = db_biz:query(sql_select) shops, err, errcode, sqlstate = db_biz:query(sql_select)
ngx.log(ngx.NOTICE, sql_select) ngx.log(ngx.NOTICE, sql_select)
if not shops then if not shops then
zx_base:log("S", "failed to query:", json.encode(tk_biz), ":", err, ":", errcode, ":", sqlstate, ".") ngx.log(ngx.ERR, "failed to query:", json.encode(tk_biz), ":", err, ":", errcode, ":", sqlstate, ".")
return return
end end
...@@ -98,8 +98,8 @@ local function sdt_sql(tk_biz, tk_control, total_time) ...@@ -98,8 +98,8 @@ local function sdt_sql(tk_biz, tk_control, total_time)
-- tostring(shop.shop_map_id)) -- tostring(shop.shop_map_id))
-- res, err, errcode, sqlstate = db_biz:query(sql_do) -- res, err, errcode, sqlstate = db_biz:query(sql_do)
-- if not res then -- if not res then
-- zx_base:log("S", "failed to connect:", json.encode(tk_biz), ":", err, ":", errcode, ":", sqlstate, ".") -- ngx.log(ngx.ERR, "failed to connect:", json.encode(tk_biz), ":", err, ":", errcode, ":", sqlstate, ".")
-- zx_base:log("S", sql_do) -- ngx.log(ngx.ERR, sql_do)
-- return -- return
-- end -- end
-- if #res ~= 0 then -- if #res ~= 0 then
...@@ -379,7 +379,7 @@ local function sdt_sql(tk_biz, tk_control, total_time) ...@@ -379,7 +379,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
res, err, errcode, sqlstate = db_biz:query(table.concat(sql)) res, err, errcode, sqlstate = db_biz:query(table.concat(sql))
if not res then if not res then
zx_base:log("S", "failed to query:", json.encode(tk_biz), ":", err, ":", errcode, ":", sqlstate, ".") ngx.log(ngx.ERR, "failed to query:", json.encode(tk_biz), ":", err, ":", errcode, ":", sqlstate, ".")
return return
end end
...@@ -404,8 +404,8 @@ local function sdt_sql(tk_biz, tk_control, total_time) ...@@ -404,8 +404,8 @@ local function sdt_sql(tk_biz, tk_control, total_time)
-- repeat -- repeat
res, err, errcode, sqlstate = db_biz:read_result() res, err, errcode, sqlstate = db_biz:read_result()
if not res then if not res then
zx_base:log("S", "bad sql: ", sql[j]) ngx.log(ngx.ERR, "bad sql: ", sql[j])
zx_base:log("S", "bad result #", j, ": ", err, ": ", errcode, ": ", sqlstate, ".") ngx.log(ngx.ERR, "bad result #", j, ": ", err, ": ", errcode, ": ", sqlstate, ".")
return ngx.exit(500) return ngx.exit(500)
end end
...@@ -542,7 +542,7 @@ local function sdt_sql(tk_biz, tk_control, total_time) ...@@ -542,7 +542,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
res, err, errcode, sqlstate = db_biz:query(str) res, err, errcode, sqlstate = db_biz:query(str)
ngx.log(ngx.NOTICE, str) ngx.log(ngx.NOTICE, str)
if not res then if not res then
zx_base:log("S", "failed to query:", json.encode(tk_biz), ngx.log(ngx.ERR, "failed to query:", json.encode(tk_biz),
":", err, ":", errcode, ":", sqlstate, ".") ":", err, ":", errcode, ":", sqlstate, ".")
return return
end end
...@@ -551,7 +551,7 @@ local function sdt_sql(tk_biz, tk_control, total_time) ...@@ -551,7 +551,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
-- res, err, errcode, sqlstate = db_control:query(str) -- res, err, errcode, sqlstate = db_control:query(str)
-- ngx.log(ngx.NOTICE, str) -- ngx.log(ngx.NOTICE, str)
-- if not res then -- if not res then
-- zx_base:log("S", "failed to query:", json.encode(tk_control), -- ngx.log(ngx.ERR, "failed to query:", json.encode(tk_control),
-- ":", err, ":", errcode, ":", sqlstate, ".") -- ":", err, ":", errcode, ":", sqlstate, ".")
-- -- return -- -- return
-- end -- end
......
...@@ -74,10 +74,26 @@ function ZX_BASE.tonumber(self, str) ...@@ -74,10 +74,26 @@ function ZX_BASE.tonumber(self, str)
end end
function ZX_BASE.date2time(self, settletime) function ZX_BASE.date2time(self, date)
local regex = [[(%d+)-(%d+)-(%d+)]] -- function date2time(date)
local y, m, d = settletime:match(regex) local time
local time = os.time({year = y, month = m, day = d}) local regex
local y, m, d, H, M, S
regex = [[(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)]]
y, m, d, H, M, S = date:match(regex)
if y then
time = os.time({year = y, month = m, day = d, hour = H, min = M, sec = S})
else
regex = [[(%d+)-(%d+)-(%d+)]]
y, m, d = date:match(regex)
time = os.time({year = y, month = m, day = d, hour = 0, min = 0, sec = 0})
if not y then
ngx.say("invalid time format(%Y-%m-%d OR %Y-%m-%d %H:%M:%S)")
ngx.eof()
return nil
end
end
return time return time
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment