refactor: 将 WithSticky 重命名为 StickyCtx,避免与 pool Option 的 With* 前缀冲突
This commit is contained in:
10
README.md
10
README.md
@@ -188,7 +188,7 @@ def slow_compute(n: int) -> int:
|
||||
|
||||
## Session 亲和路由
|
||||
|
||||
默认情况下,每次 `Invoke` 通过轮询分配 worker 进程。当多次调用需要共享同一 Python 进程的状态时,可以使用 Session 或 WithSticky 将调用固定到同一进程。
|
||||
默认情况下,每次 `Invoke` 通过轮询分配 worker 进程。当多次调用需要共享同一 Python 进程的状态时,可以使用 Session 或 StickyCtx 将调用固定到同一进程。
|
||||
|
||||
### NewSession
|
||||
|
||||
@@ -223,13 +223,13 @@ def step(session_id: str, delta: int) -> int:
|
||||
|
||||
> `NewSession` 不拥有底层 pool 的生命周期,调用 `session.Close()` 是空操作,只需关闭原始 pool。
|
||||
|
||||
### WithSticky
|
||||
### StickyCtx
|
||||
|
||||
`WithSticky` 将亲和键写入 ctx,相同 key 通过哈希稳定路由到同一 worker,无需持有 session 对象:
|
||||
`StickyCtx` 将亲和键写入 ctx,相同 key 通过哈希稳定路由到同一 worker,无需持有 session 对象:
|
||||
|
||||
```go
|
||||
// 每次调用前附加 key,相同 key 始终走同一 worker
|
||||
ctx = gobridge.WithSticky(ctx, "user-42")
|
||||
ctx = gobridge.StickyCtx(ctx, "user-42")
|
||||
gobridge.Invoke(ctx, pool, "method_a", ...)
|
||||
gobridge.Invoke(ctx, pool, "method_b", ...)
|
||||
```
|
||||
@@ -262,7 +262,7 @@ gobridge.Invoke(ctx, sessB, "increment", 99) // worker 0: counter = 99(独立
|
||||
|
||||
### 两种方式对比
|
||||
|
||||
| | `NewSession` | `WithSticky` |
|
||||
| | `NewSession` | `StickyCtx` |
|
||||
|---|---|---|
|
||||
| 路由方式 | 创建时轮询确定 worker | 按 key 哈希确定 worker |
|
||||
| 适用场景 | 显式会话管理 | 按自然键(用户 ID 等)路由 |
|
||||
|
||||
Reference in New Issue
Block a user