Loading...
This site is best viewed in a modern browser with JavaScript enabled.
Something went wrong while trying to load the full version of this site. Try hard-refreshing this page to fix the error.
package.loaded的问题
yaohang.chengdu
请问package.loaded加载的变量是全局共享而且无关请求周期的吧?
因为最近在使用
lua-resty-balancer
这个库时,碰到一个奇怪的问题,
preread_by_lua_file这个阶段(监听1000的那个server)通过package.loaded加载了一个rr_up的变量,然后在balance_by_lua_file里使用(package.loaded)
非常奇怪的是:balance_by_lua这个阶段,使用package.loaded加载的变量有时候会报错,通过查看错误日志之后是:attempt to index local 'rr_up' (a nil value)
这个报错是完全随机的,出现的几率约等50%,实在没想通,望各位指教一下,谢谢
配置文件如下:
stream {
lua_shared_dict serverList 1m;
lua_shared_dict containerInfo 5m;
upstream backend {
server 0.0.0.1:9000;
balancer_by_lua_file /path/to/resty/balancer.lua;
}
server {
listen 9000;
proxy_pass backend;
}
server {
listen 1000;
preread_by_lua_file /path/to/resty/shareDictStreamAPI.lua;
content_by_lua_block {ngx.say("ok")}
}
}
yaohang.chengdu
对了,强调一下,是在stream模式下, 不是http