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
This commit is contained in:
@@ -47,7 +47,11 @@ func (w *worker) start() error {
|
||||
cmd := exec.Command(w.cfg.pythonExe, w.cfg.scriptArgs...)
|
||||
cmd.Dir = w.cfg.workDir
|
||||
cmd.Env = append(os.Environ(), w.cfg.env...)
|
||||
cmd.Env = append(cmd.Env, "GOBRIDGE_SOCKET_PATH="+sockPath)
|
||||
cmd.Env = append(cmd.Env,
|
||||
"GOBRIDGE_SOCKET_PATH="+sockPath,
|
||||
fmt.Sprintf("GOBRIDGE_WORKER_ID=%d", w.id),
|
||||
fmt.Sprintf("GOBRIDGE_WORKER_COUNT=%d", w.cfg.workers),
|
||||
)
|
||||
if w.cfg.stdout != nil {
|
||||
cmd.Stdout = w.cfg.stdout
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user