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

optimize date2time

optimize ngx.timer
parent 956f2471
......@@ -26,17 +26,21 @@ local tk_sync = loadmod('tk_sync')
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 = os.date('%Y-%m-%d', os.time())
local settletime = zx_base:date2time(settledate)
-- local delay = 5 -- delaytime
-- -- local settledate = "2018-08-16"
-- local now_time = '0030' -- time to run, here is 12:00 for each day
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
handler = function(premature, interval_time, settletime)
handler = function(premature, now_time)
if not premature then
local nowtime = os.date("%H%M")
if nowtime == interval_time then
-- if nowtime == now_time then
-- settle features start
......@@ -59,25 +63,29 @@ handler = function(premature, interval_time, settletime)
-- node_smsvip: run()
-- node_vipacct: run()
-- tk_sync: run()
-- node_card: run(settletime)
-- node_ticket: run(settletime)
-- tk_sdt: run(settletime)
tk_sync: run()
node_card: run(now_time)
node_ticket: run(now_time)
tk_sdt: run(now_time)
local handle = io.popen("curl localhost:8080/settle")
if handle then
handle:close()
end
-- local handle = io.popen("curl localhost:8080/settle")
-- if handle then
-- handle:close()
-- end
-- -- reset now_time
-- now_time = tostring(tonumber(now_time) - 1)
-- reset interval_time
interval_time = tostring(tonumber(interval_time) - 1)
-- reset settle time
settledate = os.date('%Y-%m-%d', os.time())
settletime = zx_base:date2time(settledate)
end
local ok, err = ngx.timer.at(delay, handler, interval_time, settletime)
-- settledate = os.date('%Y-%m-%d', os.time())
-- now_time = zx_base:date2time(settledate)
-- 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
ngx.log(ngx.ERR, "failed to create the timer:", err)
return
......@@ -85,8 +93,8 @@ handler = function(premature, interval_time, settletime)
end
end
if ngx.worker.id() == 1 then
local ok, err = ngx.timer.at(delay, handler, interval_time, settletime)
if ngx.worker.id() == 0 then
local ok, err = ngx.timer.at(delay, handler, now_time)
if not ok then
ngx.log(ngx.ERR, "failed to create the timer:", err)
return
......
......@@ -22,7 +22,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
-- 新建mysql连接
local db_biz, err = mysql:new()
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
end
......@@ -40,14 +40,14 @@ local function sdt_sql(tk_biz, tk_control, total_time)
charset = 'utf8'
}
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
end
-- 新建mysql连接
local db_control, err = mysql:new()
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
end
......@@ -65,7 +65,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
charset = 'utf8'
}
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
end
......@@ -77,7 +77,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
shops, err, errcode, sqlstate = db_biz:query(sql_select)
ngx.log(ngx.NOTICE, sql_select)
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
end
......@@ -98,8 +98,8 @@ local function sdt_sql(tk_biz, tk_control, total_time)
-- tostring(shop.shop_map_id))
-- res, err, errcode, sqlstate = db_biz:query(sql_do)
-- if not res then
-- zx_base:log("S", "failed to connect:", json.encode(tk_biz), ":", err, ":", errcode, ":", sqlstate, ".")
-- zx_base:log("S", sql_do)
-- ngx.log(ngx.ERR, "failed to connect:", json.encode(tk_biz), ":", err, ":", errcode, ":", sqlstate, ".")
-- ngx.log(ngx.ERR, sql_do)
-- return
-- end
-- if #res ~= 0 then
......@@ -379,7 +379,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
res, err, errcode, sqlstate = db_biz:query(table.concat(sql))
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
end
......@@ -404,8 +404,8 @@ local function sdt_sql(tk_biz, tk_control, total_time)
-- repeat
res, err, errcode, sqlstate = db_biz:read_result()
if not res then
zx_base:log("S", "bad sql: ", sql[j])
zx_base:log("S", "bad result #", j, ": ", err, ": ", errcode, ": ", sqlstate, ".")
ngx.log(ngx.ERR, "bad sql: ", sql[j])
ngx.log(ngx.ERR, "bad result #", j, ": ", err, ": ", errcode, ": ", sqlstate, ".")
return ngx.exit(500)
end
......@@ -542,7 +542,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
res, err, errcode, sqlstate = db_biz:query(str)
ngx.log(ngx.NOTICE, str)
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, ".")
return
end
......@@ -551,7 +551,7 @@ local function sdt_sql(tk_biz, tk_control, total_time)
-- res, err, errcode, sqlstate = db_control:query(str)
-- ngx.log(ngx.NOTICE, str)
-- 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, ".")
-- -- return
-- end
......
......@@ -74,10 +74,26 @@ function ZX_BASE.tonumber(self, str)
end
function ZX_BASE.date2time(self, settletime)
local regex = [[(%d+)-(%d+)-(%d+)]]
local y, m, d = settletime:match(regex)
local time = os.time({year = y, month = m, day = d})
function ZX_BASE.date2time(self, date)
-- function date2time(date)
local time
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
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