Hello!
考虑改写下 ngx.sleep,判断下阶段如果是 init 和 init_worker,直接用阻塞进程的 os.execute("sleep xxx") 的方式;否则使用原本的 ngx.sleep。
local old_sleep = ngx.sleep
ngx.sleep = function(s)
local phase = ngx.get_phase()
if phase == "init" or phase == "init_worker" then
os.execute(string.format("sleep %f", s))
else
old_sleep(s)
end
end
手打的,没测过,仅供参考。。。