Hello!
2014-07-09 0:50 GMT-07:00 Blueant Liu:
> 我本想用一个ngx.shared.DICT共享内存变量控制服务的总体开关,所以在配置文件里分配了内存;在init_by_lua_file的代码里面初始化了变量;但在content_by_lua_file的请求时,init_by_lua_file的代码每次都会被执行。这点不得其解,在此请假大家能够给与解答,谢谢。
>
当你通过 lua_code_cache off 配置指令禁用 Lua 代码缓存时,init_by_lua*
程序会在每请求的开始执行。这是因为在此种模式下,每个请求都会创建一个独立的 Lua VM 实例,所以必须总是需要在新的 Lua VM 上执行
init_by_lua 以确保每个 VM 都正确地得到初始化。
lua_code_cache off 只应在开发时使用,因为性能开销巨大,正如上面的描述所暗示的。
Regards,
-agentzh