Commit Graph
11 Commits
Author SHA1 Message Date
what eb6ebd8632 test: 补充 WithEnv 环境变量注入的测试
验证 WithEnv 设置的变量能真正传进子进程,避免上层配置解析漏掉该
字段时无法被发现(此前 framework-v2 里 env 字段一直未接入,线上因
此从未真正生效过)。
2026-07-23 13:48:34 +08:00
what 983d106166 fix: 修复流式 handler 中途抛异常时 end/error 消息错位的问题
_dispatch 处理生成器(yield)handler 时之前用 try/finally 包裹迭代,
导致中途抛异常时会先发一条 end、再发一条 error。Go 侧 invokeStreamOut
读到第一条终止消息(end)就直接返回并把连接标记健康放回池子,遗留的
error 消息留在 socket 里,会被下一个复用该连接的调用错误地当成自己的
响应读走,造成两次完全不相关的调用结果串号。

改成不用 finally,只在生成器正常耗尽后发送一次 end;异常直接交给外层
统一处理发送 error,保证一次调用只产生一条终止消息。

新增 pool_test.go 里的 TestStreamErrorMidwayCorruptsNextCall 复现并验证修复。
2026-07-23 13:44:45 +08:00
what 0f4a4ded53 feat: 添加 WithDefaultTimeout 默认超时配置
Invoke 之前完全依赖调用方传入的 ctx 控制超时,池子被占满或 Python 侧
handler 阻塞时,未设置 deadline 的调用会永久阻塞且不报错。新增
WithDefaultTimeout 选项,仅在 ctx 未设置 deadline 时兜底生效,调用方
显式设置的超时优先级更高。

同时补充 example 中的阻塞/超时演示(demoTimeout、demoBlocking)和
pool_test.go 集成测试,覆盖池占满排队、默认超时、显式 deadline 优先级、
流式输出超时后 channel 静默关闭等场景。
2026-07-23 10:37:24 +08:00
what 57775a33ec feat: 添加 []byte ↔ bytes 支持(base64 透明编解码)
- Python 侧:_decode_bytes_args 根据函数注解自动解码入参,_bytes_encode 自动编码 bytes 返回值
- _cast 支持 bytes 类型(call_go[bytes] 返回值解码)
- 流式输出同步支持 chan []byte(每个 chunk 独立编解码)
- example/worker.py 新增 bytes_reverse / bytes_concat / bytes_chunks 示例
- example/main.go 新增对应演示用例
- README 补充类型表 []byte 行及完整使用章节
2026-05-19 20:07:31 +08:00
what e6a61cc1ee refactor: 将 WithSticky 重命名为 StickyCtx,避免与 pool Option 的 With* 前缀冲突 2026-05-08 15:21:59 +08:00
what a3cf983b39 refactor: 将 WithAffinity 重命名为 WithSticky,文件 affinity.go → sticky.go 2026-05-08 11:37:34 +08:00
what cda662e874 feat: 添加 Session 亲和路由支持(NewSession / WithAffinity)
- 新增 NewSession(pool):返回固定到同一 worker 进程的 Pool 视图
- 新增 WithAffinity(ctx, key):相同 key 通过 FNV hash 稳定路由到同一 worker
- pool.acquire 支持亲和路由,无亲和时保持轮询
- example 添加 Session / WithAffinity / 全局变量共享三组演示
2026-05-08 11:21:02 +08:00
what 39517dc5fc feat: 通过匿名管道实现父进程死亡检测,替代轮询方案
- worker.go: 为每个子进程创建 death pipe,Go 持有写端
- __init__.py: run() 中监听管道读端 EOF,Go 退出时立即终止子进程
- 解决 Ctrl+C / panic / SIGKILL 等场景下 Python worker 变成孤儿进程的问题
- Python 包版本升至 0.1.2
2026-04-14 13:49:33 +08:00
what b390effd8e feat: 添加 Python→Go 全双工回调支持(call_go)
- 新增 WithHandlers 选项,通过反射将 Go 结构体方法暴露给 Python
- 新增 callback/callback_result 消息类型,支持 Python 在处理中回调 Go
- client 侧新增 readResult,内联处理 callback,复用同一连接避免死锁
- Python 侧新增 call_go[T]() 泛型调用,支持 dataclass 自动构造
- 注入 GOBRIDGE_WORKER_ID/WORKER_COUNT 环境变量,支持多 worker 初始化分工
- 新增示例演示 Go→Python→Go→Python 四层全双工链路
- Python 包版本升至 0.1.1
2026-04-14 13:06:50 +08:00
what 07e9239ac5 refactor: 将装饰器 gobridge 重命名为 expose,并添加 pyproject.toml 2026-04-13 17:13:54 +08:00
what a92abca252 first commit 2026-04-10 09:24:28 +08:00