是这样的,我在init_worker_by_lua中使用nginx.timer.at启动一个定时任务,从redis中拉取配置并且解析到一个worker全局变量中,请问我在access_by_lua中访问这个变量的时候需要加锁吗?代码类似如下,通过workerlocal来共享worker全局变量:
wokerlocal.lua
_M = {servers:{}}
return _M
===========================
init_worker_by_lua_block{
local m = require "workerlocal.lua"
local config_servers = function()
#pull config info from redis then decode
m.servers = #decode(....)
ngx.timer.at(1, config_servers)
end
ngx.timer.at(1, config_servers)
}
============================
access_by_lua_block {
local m = require "workerlocal.lua"
local do_with_servers = function()
# access m.servers
end
do_with_servers ()
}
请问在do_with_servers和config_servers 需要加锁来访问servers吗?
谢谢~