突发奇想写了一个类似锁的小玩意
auth yufei
2017-08-13
锁
...略...
--warting 文件锁
local filelock = ngx.shared.filelock
local req,_=filelock:get(file)
--碰到锁就循环,等待,一直到锁释放
if req == 1 then
while true do
ngx.say("waiting...")
ngx.sleep(0.1)
local req,_=filelock:get(file)
if req ~= 1 then
break
end
end
end
--没碰锁操作之前先设置锁
filelock:set(file,1,30)
--这个是测试接口
if heads["aaa"] == "1" then
ngx.say(file)
ngx.say("resize file")
local req,_=filelock:get(file)
ngx.say(req)
ngx.exit(200)
end
...略...
--open file lock 文件操作结束放开锁
filelock:set(file,0,10)