processEventsAsync 异步处理事件的 goroutine
()
| 358 | |
| 359 | // processEventsAsync 异步处理事件的 goroutine |
| 360 | func (m *LogicMemoryMiddleware) processEventsAsync() { |
| 361 | defer m.wg.Done() |
| 362 | |
| 363 | for { |
| 364 | select { |
| 365 | case <-m.stopCh: |
| 366 | // 处理剩余的事件 |
| 367 | for { |
| 368 | select { |
| 369 | case event := <-m.eventBuffer: |
| 370 | if err := m.manager.ProcessEvent(context.Background(), *event); err != nil { |
| 371 | lmLog.Error(context.Background(), "failed to process event", map[string]any{"error": err.Error()}) |
| 372 | } |
| 373 | default: |
| 374 | return |
| 375 | } |
| 376 | } |
| 377 | case event := <-m.eventBuffer: |
| 378 | if err := m.manager.ProcessEvent(context.Background(), *event); err != nil { |
| 379 | lmLog.Error(context.Background(), "failed to process event", map[string]any{"error": err.Error()}) |
| 380 | } |
| 381 | } |
| 382 | } |
| 383 | } |
| 384 | |
| 385 | // buildMemorySection 构建 Memory 注入文本 |
| 386 | func (m *LogicMemoryMiddleware) buildMemorySection(memories []*logic.LogicMemory) string { |
no test coverage detected