UserLua.lua:
--将所有的用户插入redis中
local function close_db(db)
if not db then
return
end
db:close()
end
local mysqloss = require("resty.mysql") --连接数据库oss
local mysqlums = require("resty.mysql") --连接数据库ums
local json = require ("dkjson")--导入json包
local function searchRedis( key, value)
local redis = require("resty.redis")
ngx.header.content_type="application/json;charset=utf8"
--创建实例
local redis_instance = redis:new()
--设置超时(毫秒)
redis_instance:set_timeout(3000)
--建立连接
local host = "127.0.0.1"
local port = 6379
local ok, err = redis_instance:connect(host, port)
if not ok then
ngx.say("connect to redis error : ", err)
return close_redis(redis_instance)
end
local resp, err = redis_instance:set(key,value);
end
local function selectoss(select_oss)
local dboss, err = mysqloss:new()
if not dboss then
ngx.say("new mysql error : ", err)
return
end
dboss:set_timeout(10000)
local propsoss = {
host = "127.0.0.1",
port = 3306,
database = "oss",
user = "appuser",
password = "appuser"
}
local resoss, err, errno, sqlstate = dboss:connect(propsoss)
ngx.say(select_oss)
if not resoss then
ngx.say("connect to mysql error : ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)
return close_db(dboss)
end
resoss, err, errno, sqlstate = dboss:query(select_oss)
if not resoss then
ngx.say('shenmewanyi')
end
local jsonresoss=json.encode (resoss)
--searchRedis(value,jsonresoss)
ngx.say(jsonresoss,'22222',"<br/>",table.getn(resoss))
--check(flagone)
end
local function insertsql()
local dbums, err = mysqlums:new()
if not dbums then
ngx.say("new mysql error : ", err)
return
end
dbums:set_timeout(100000)
local propsums = {
host = "127.0.0.1",
port = 3306,
database = "ums",
user = "appuser",
password = "appuser"
}
local resums, err, errno, sqlstate = dbums:connect(propsums)
if not resums then
ngx.say("connect to mysql error : ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)
return close_db(dbums)
end
local function check(eee)
ngx.say(eee,'<br/>')
end
local select_ums = "select uf.user_id,uf.user_number from user_info uf where uf.user_status = 1 || 2 ORDER BY id"
resums, err, errno, sqlstate = dbums:query(select_ums)
ngx.say(select_ums)
if not resums then
ngx.say("select error ums: ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)
return close_db(dbums)
end
--local all={}
local flagone=""
local flagtwo=","
for i, row in ipairs(resums) do
for name, value in pairs(row) do
--ngx.say("select row ", i, " : ", name, " = ", value, type(value) ,"<br/>")
if name=="user_number" then
flagone = value..flagtwo..flagone
end
end
end
flagone = flagone.sub(flagone,1,string.len(flagone)-1)--字符串截取
-- searchoss(ccq)
--查询oss表数据
local select_oss = "select id,pid,usertoken from oss_order_form oof where oof.usertoken in ("..flagone..")"
ngx.say(select_oss)
selectoss(select_oss)
end
insertsql()--程序入口
ngx.say("<br/>")
在代码中我配置了两个数据源