前面一篇文章介绍了Openresty Lua协程调度机制,主要关心的是核心调度函数run_thread()内部发生的事情,而对于外部的事情我们并没有涉及.本篇作为其姊妹篇,准备补上剩余的部分.本篇将通过一个例子,完整介绍OpenResty中Lua钩子的调用流程,包括初始化阶段的工作.新连接进来时如何进入钩子.I/O等待时如何出去.事件触发时如何恢复.钩子正常执行结束时的操作.钩子内出错的情况.本文同样是基于stream-lua模块的代码. 本博客已经迁移至CatBro's Blog,那里是我自己…