Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
openresty
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tangku7
openresty
Commits
15622bfa
Commit
15622bfa
authored
Sep 10, 2018
by
周尚
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
optimize date2time
optimize ngx.timer
parent
956f2471
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
64 additions
and
40 deletions
+64
-40
nginx/lua/luabiz/settle.lua
nginx/lua/luabiz/settle.lua
+32
-24
nginx/lua/luabiz/tk_sdt.lua
nginx/lua/luabiz/tk_sdt.lua
+12
-12
nginx/lua/luabiz/zx_base.lua
nginx/lua/luabiz/zx_base.lua
+20
-4
No files found.
nginx/lua/luabiz/settle.lua
View file @
15622bfa
...
...
@@ -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
,
settle
time
)
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(settle
time)
-- node_ticket: run(settle
time)
-- tk_sdt: run(settle
time)
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
,
settle
time
)
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
...
...
nginx/lua/luabiz/tk_sdt.lua
View file @
15622bfa
...
...
@@ -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
...
...
nginx/lua/luabiz/zx_base.lua
View file @
15622bfa
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment