feat: 添加 WithDefaultTimeout 默认超时配置
Invoke 之前完全依赖调用方传入的 ctx 控制超时,池子被占满或 Python 侧 handler 阻塞时,未设置 deadline 的调用会永久阻塞且不报错。新增 WithDefaultTimeout 选项,仅在 ctx 未设置 deadline 时兜底生效,调用方 显式设置的超时优先级更高。 同时补充 example 中的阻塞/超时演示(demoTimeout、demoBlocking)和 pool_test.go 集成测试,覆盖池占满排队、默认超时、显式 deadline 优先级、 流式输出超时后 channel 静默关闭等场景。
This commit is contained in:
@@ -3,6 +3,7 @@ package gobridge
|
||||
import (
|
||||
"context"
|
||||
"net"
|
||||
"time"
|
||||
)
|
||||
|
||||
// singleWorkerPool 是 Pool 的包装,所有请求固定路由到同一个 worker 进程。
|
||||
@@ -49,3 +50,7 @@ func (s *singleWorkerPool) nextReqID() uint64 {
|
||||
func (s *singleWorkerPool) callbackDispatch(ctx context.Context, msg Message) (any, string) {
|
||||
return s.pool.callbackDispatch(ctx, msg)
|
||||
}
|
||||
|
||||
func (s *singleWorkerPool) defaultTimeout() time.Duration {
|
||||
return s.pool.defaultTimeout()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user