生命周期
2025年7月1日大约 2 分钟hyperlanewebrustusage-introductionlifetime
中间件洋葱模型
hyperlane
框架版本 < v3.0.0
的版本
提示
具体生命周期如下:
- 先根据注册顺序执行同步路由
- 最后执行同步路由
hyperlane
框架 >= v3.0.0
且 < v4.0.0
的版本
提示
具体生命周期如下:
- 先根据注册顺序处理所有的异步中间件
- 再处理所有的异步中间件,异步中间件执行能保证和代码注册顺序一致
- 再根据注册顺序执行同步路由,如果同步路由存在则不会执行同名的异步路由
- 最后执行异步路由
hyperlane
框架 >= v4.0.0
的版本
提示
具体生命周期如下:
- 先根据注册顺序处理所有的异步中间件
- 最后根据注册顺序执行异步路由
hyperlane
框架 >= v4.22.0
的版本
提示
具体生命周期如下:
- 先根据注册顺序处理所有的异步请求中间件
- 再根据注册顺序执行异步路由
- 最后根据注册顺序处理所有的异步响应中间件
hyperlane
框架 >= v4.89.0
的版本
提示
如果任一环节调用 ctx.aborted().await
或者 ctx.set_aborted(true).await
则会中止后续流程, 相关 API
(大部分场景用不到)
- 调用
ctx.cancel_aborted().await
取消中止,继续后续流程 - 调用
ctx.get_aborted().await
来判断是否中止
hyperlane
框架 >= v5.25.1
的版本
提示
如果任一环节调用 ctx.closed().await
或者 ctx.set_closed(true).await
则会停止后续响应的发送, 当前请求生命周期结束会断开 TCP
连接,不会进入下一次生命周期循环,而是需要重新建立 TCP
连接, 相关 API
(大部分场景用不到)
- 调用
ctx.cancel_closed().await
取消中止,继续后续响应的发送 - 调用
ctx.get_closed().await
来判断是否关闭响应的发送
WebSocket 生命周期变化