Commit Graph

12 Commits

Author SHA1 Message Date
e6a61cc1ee refactor: 将 WithSticky 重命名为 StickyCtx,避免与 pool Option 的 With* 前缀冲突 2026-05-08 15:21:59 +08:00
a3cf983b39 refactor: 将 WithAffinity 重命名为 WithSticky,文件 affinity.go → sticky.go 2026-05-08 11:37:34 +08:00
3d293699e9 docs: 添加 Session 亲和路由章节(NewSession / WithAffinity) 2026-05-08 11:29:39 +08:00
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
30004e44ee docs: 添加 handler 中使用 threading.Thread 的注意事项 2026-04-14 16:49:12 +08:00
b4e77ce9a8 feat: 为 Python worker 输出添加行前缀,并启用无缓冲模式
- 新增 prefixWriter,对每行输出添加 [python:N] 前缀,便于与 Go 日志区分
- 注入 PYTHONUNBUFFERED=1,确保 print() 实时输出不被管道缓冲
2026-04-14 14:38:24 +08:00
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
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
07e9239ac5 refactor: 将装饰器 gobridge 重命名为 expose,并添加 pyproject.toml 2026-04-13 17:13:54 +08:00
308faa95ff refactor: 将 Pool 重构为接口,提取 pool 为具体实现 2026-04-10 16:38:37 +08:00
cca4860df0 docs: 更新 uv pyproject.toml 示例,改为从 git 仓库安装 Python 包 2026-04-10 09:28:05 +08:00
a92abca252 first commit 2026-04-10 09:24:28 +08:00