超时与等待策略
可视化边界:超时图只说明等待边界,不代表 flow config 的静态结构。
TriggerFlow 是事件驱动 runtime,不保证每次 start() 都会立刻产出结果。
1. timeout 作用点时间线
如何阅读这张图
get_result(timeout=...)和get_runtime_stream(timeout=...)是两条独立等待链。- stream timeout 只停止旁路消费,不会自动把 execution 终止。
2. 常见等待来源
when()等外部事件pause_for()等continue_with()- runtime stream 等新事件或
stop_stream()
3. get_result(timeout=...)
execution.get_result(timeout=...) / flow.start(timeout=...) 超时后会返回 None 并给出 warning。
这通常意味着:
- 还没有最终 result
- 你可能忘了
.end()或set_result()
4. stream timeout
get_runtime_stream(timeout=...) 超时只会停止 stream 消费,不会自动结束 execution。
5. API 边界建议
- Web 请求边界上明确设置 timeout
- 长任务改用
start_execution(..., wait_for_result=False) - 等外部输入时不要把“无限等待”写在业务 chunk 里
6. 推荐姿势
- 线性链路:可以直接
start() - 长生命周期流程:
start_execution()+ 外部等待 - UI 中间态:runtime stream