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
2b5305ba
Commit
2b5305ba
authored
Jul 23, 2018
by
周尚
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
款台信息同步 [完成]
parent
312cc544
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
154 additions
and
1 deletion
+154
-1
README.org
README.org
+1
-0
nginx/lua/luabiz/node_cs.lua
nginx/lua/luabiz/node_cs.lua
+2
-1
nginx/lua/luabiz/tk_casher.lua
nginx/lua/luabiz/tk_casher.lua
+151
-0
No files found.
README.org
View file @
2b5305ba
...
...
@@ -43,3 +43,4 @@
2. [ ] 会员日统计
2. [X] 数据同步
1. [X] 门店信息
2. [X] 款台信息
nginx/lua/luabiz/node_cs.lua
View file @
2b5305ba
...
...
@@ -68,6 +68,7 @@ end
local
function
async
(
db_st
,
interval
)
local
co
=
coroutine.wrap
(
function
()
...
...
nginx/lua/luabiz/tk_casher.lua
0 → 100644
View file @
2b5305ba
local
_CASHER
=
{}
local
MODULE
=
"S"
-- Settle
-- 加载模块
local
mysql
=
loadmod
(
"resty.mysql"
)
local
zx_base
=
loadmod
(
"zx_base"
)
local
json
=
loadmod
(
'cjson'
)
local
db_conf
=
"tk7_dbs.json"
-- 协和组
local
tasks
=
{}
local
function
EOF
()
zx_base
:
log
(
MODULE
,
"-----------------------> END[TK_CASHER]"
)
ngx
.
eof
()
end
-- 门店信息
-- @param table tk_biz 节点机数据库对象
-- table tk_control 总控机数据库对象
-- @return nil
local
function
casher_sql
(
tk_biz
,
tk_control
)
zx_base
:
log
(
MODULE
,
"-----------------------> START[TK_CASHER]"
)
-- 新建mysql连接
local
db
,
err
=
mysql
:
new
()
if
not
db
then
zx_base
:
log
(
MODULE
,
"[TK_CASHER]"
,
"failed to instantiate mysql: "
,
err
)
return
false
end
-- 连接节点机MySQL
local
ok
,
err
,
errcode
,
sqlstate
=
db
:
connect
{
host
=
tk_biz
[
'host'
],
port
=
tk_biz
[
'port'
],
database
=
tk_biz
[
'database'
],
user
=
tk_biz
[
'user'
],
password
=
tk_biz
[
'password'
],
timeout
=
tk_biz
[
'timeout'
],
charset
=
'utf8'
}
if
not
ok
then
zx_base
:
log
(
MODULE
,
"[TK_CASHER]"
,
"failed to connect:"
,
json
.
encode
(
tk_biz
),
":"
,
err
,
":"
,
errcode
,
sqlstate
)
return
end
-- 查询节点机
local
sql
=
string.format
(
[[SELECT * FROM tk_casher where update_time > %s]]
,
-- os.date("%Y%m%d000000", os.time()-24*60*60)
"20180716000000"
)
local
cashers
cashers
,
err
,
errcode
,
sqlstate
=
db
:
query
(
sql
)
if
not
cashers
then
zx_base
:
log
(
MODULE
,
"[TK_CASHER]"
,
sql
)
zx_base
:
log
(
MODULE
,
"[TK_CASHER]"
,
"failed to query:"
,
json
.
encode
(
tk_biz
),
":"
,
err
,
":"
,
errcode
,
":"
,
sqlstate
,
"."
)
return
end
if
#
cashers
==
0
then
ngx
.
say
(
"no cashers found"
)
ngx
.
eof
()
return
end
-- 重置MySQL连接
zx_base
:
close_db
(
db
)
db
,
err
=
mysql
:
new
()
if
not
db
then
zx_base
:
log
(
MODULE
,
"[TK_CASHER]"
,
"failed to instantiate mysql: "
,
err
)
return
false
end
-- 连接总控机MySQL
ok
,
err
,
errcode
,
sqlstate
=
db
:
connect
{
host
=
tk_control
[
'host'
],
port
=
tk_control
[
'port'
],
database
=
tk_control
[
'database'
],
user
=
tk_control
[
'user'
],
password
=
tk_control
[
'password'
],
timeout
=
tk_control
[
'timeout'
],
charset
=
'utf8'
}
if
not
ok
then
zx_base
:
log
(
MODULE
,
"[TK_CASHER]"
,
"failed to connect:"
,
json
.
encode
(
tk_biz
),
":"
,
errcode
,
sqlstate
)
return
end
-- 插入总控机
for
i
=
1
,
#
cashers
do
local
casher
=
cashers
[
i
]
local
sql_result
=
zx_base
:
sql_concate
(
"duplicate"
,
"tk_casher"
,
casher
)
ok
,
err
,
errcode
,
sqlstate
=
db
:
query
(
sql_result
)
if
not
ok
then
zx_base
:
log
(
MODULE
,
"[TK_CASHER]"
,
sql_result
)
zx_base
:
log
(
MODULE
,
"[TK_CASHER]"
,
"failed to query:"
,
json
.
encode
(
tk_control
),
":"
,
err
,
":"
,
errcode
,
":"
,
sqlstate
,
"."
)
end
end
ngx
.
say
(
"SUCCESS"
)
EOF
()
end
local
function
async
(
tk_biz
,
tk_control
)
local
co
=
coroutine.wrap
(
function
()
casher_sql
(
tk_biz
,
tk_control
)
end
)
table.insert
(
tasks
,
co
)
end
local
function
dispatch
()
local
i
=
1
while
true
do
if
tasks
[
i
]
==
nil
then
if
tasks
[
1
]
==
nil
then
break
end
i
=
1
end
local
res
=
tasks
[
i
]()
if
not
res
then
table.remove
(
tasks
,
i
)
else
i
=
i
+
1
end
end
end
function
_CASHER
.
run
()
local
dbs_st
=
zx_base
:
db_read
(
db_conf
)
for
i
=
1
,
#
dbs_st
.
tk_biz
do
async
(
dbs_st
.
tk_biz
[
i
],
dbs_st
.
tk_control
)
end
dispatch
()
end
return
_CASHER
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