Hello!
2013/5/23 xunen:
> 那关于第一点,我还有一点小小疑,还是 如下配置:
> location / {
> rewrite_by_lua_file 'rewrite.lua'
> mymod;
> }
> rewrite.lua 处理一些逻辑和设置一些变量(ngx.var) 后,我自己的 handler 模块 mymod
> 在 postconfiguration 节点 通过 调用 ngx_http_lua_get_global_state 保存 lua_State
> 值,然后模块在 handler 处理
> 阶段 使用 lua_State 值是否能异步执行某个 lua 代码呢?
>
你说的“异步执行某个 lua 代码”具体是指什么?是在一个自己的 OS 线程中使用 lua_State 并在其中运行 Lua
代码?还是指调用 ngx_lua 的那些执行非阻塞 I/O 的 Lua API?
前者不能工作,因为 lua_State 不是线程安全的东西。
至于后者,其实也不能工作,因为那些非阻塞 I/O 的原语依赖于 ngx_lua 自己的 I/O 事件调度器,不能脱离 ngx_lua 的上下文使用。
Best regards,
-agentzh