5.6 hook函数执行顺序

分类讨论
before_* 钩子函数:从前到后执行
after_* 钩子函数:从后往前执行
wrap_* 钩子函数:洋葱架构,前面的包裹后面的
这里的顺序并非定义顺序,而是创建Agent时传递中间件的顺序。

  1. 代码
图片[1]-5.6 hook函数执行顺序-大赛人网
图片[2]-5.6 hook函数执行顺序-大赛人网
图片[3]-5.6 hook函数执行顺序-大赛人网
图片[4]-5.6 hook函数执行顺序-大赛人网
图片[5]-5.6 hook函数执行顺序-大赛人网
图片[6]-5.6 hook函数执行顺序-大赛人网
图片[7]-5.6 hook函数执行顺序-大赛人网

分析

1.中间件定义是乱序的,但传递给Agent的顺序是固定的

2.由输出可知,中间件的执行遵循上述规律,只和传递给Agent的顺序有关

3.具体来说

    • before_model中间件的执行顺序和传递顺序一致
    • after_model中间件的执行顺序和传递顺序相反
    • wrap_model_call中间件的执行顺序是: 先传递的包在最外层,即洋葱架构
    © 版权声明
    THE END
    喜欢就支持一下吧
    点赞5 分享
    评论 抢沙发
    头像-大赛人网
    欢迎您留下宝贵的见解!
    提交
    头像-大赛人网

    昵称

    取消
    昵称

      请登录后查看评论内容