Hello!
2014-03-26 2:58 GMT-07:00 coderesty:
> 另外我想问一下, lua_check_client_abort on;时候如果正在用LuaRestyMySQLLibrary通信, 客户端断开连接,
> abort掉, 请问现在和mysql的连接openresty是怎么处理的呀, 是直接关闭还是放到到mysql的连接池里, 还是什么也不做??
> 还有和redis的连接是怎么处理的?
>
如果你没有注册自己的 ngx.on_abort 回调,则 ngx_lua 会在客户端断开连接时立即终止当前的 Lua
处理程序。如果当前有正在被使用的上游连接,这些连接会被立即终止并关闭。
如果你希望这些正在使用中的上游连接被恰当地放入连接池,你应当自己注册 ngx.on_abort
回调,对这些正在进行中的上游查询进行等待,然后在这些查询结束后自己调用 set_keepalive() 方法把它们放入连接池,最后再调用
ngx.exit(444) 自己结束当前的 Lua 处理程序。
对于上游的 cosocket 连接(无论是 mysql 还是 redis 还是其他),都需要用户 Lua 代码自己通过调用
set_keepalive() 方法把连接放入连接池。
Regards,
-agentzh