UpdateState 更新状态
(ctx context.Context, sessionID string, delta map[string]any)
| 198 | |
| 199 | // UpdateState 更新状态 |
| 200 | func (s *InMemoryService) UpdateState(ctx context.Context, sessionID string, delta map[string]any) error { |
| 201 | s.mu.Lock() |
| 202 | defer s.mu.Unlock() |
| 203 | |
| 204 | session, ok := s.sessions[sessionID] |
| 205 | if !ok { |
| 206 | return ErrSessionNotFound |
| 207 | } |
| 208 | |
| 209 | for k, v := range delta { |
| 210 | if err := session.state.Set(k, v); err != nil { |
| 211 | return fmt.Errorf("set state %s: %w", k, err) |
| 212 | } |
| 213 | } |
| 214 | |
| 215 | session.lastUpdateTime = time.Now() |
| 216 | return nil |
| 217 | } |
| 218 | |
| 219 | // inMemorySession 内存会话实现 |
| 220 | type inMemorySession struct { |