MCPcopy Create free account
hub / github.com/astercloud/aster / captureEvent

Method captureEvent

pkg/middleware/logic_memory.go:337–357  ·  view source on GitHub ↗

captureEvent 内部方法:捕获事件

(event *logic.Event)

Source from the content-addressed store, hash-verified

335
336// captureEvent 内部方法:捕获事件
337func (m *LogicMemoryMiddleware) captureEvent(event *logic.Event) {
338 if !m.config.EnableCapture {
339 return
340 }
341
342 if m.config.AsyncCapture && m.eventBuffer != nil {
343 // 异步捕获:发送到缓冲区
344 select {
345 case m.eventBuffer <- event:
346 // 成功放入缓冲区
347 default:
348 // 缓冲区满,丢弃事件(记录警告)
349 lmLog.Warn(context.Background(), "event buffer full, dropping event", map[string]any{"type": event.Type})
350 }
351 } else {
352 // 同步捕获:直接处理
353 if err := m.manager.ProcessEvent(context.Background(), *event); err != nil {
354 lmLog.Error(context.Background(), "failed to process event", map[string]any{"error": err.Error()})
355 }
356 }
357}
358
359// processEventsAsync 异步处理事件的 goroutine
360func (m *LogicMemoryMiddleware) processEventsAsync() {

Callers 5

WrapToolCallMethod · 0.95
CaptureEventMethod · 0.95
CaptureUserMessageMethod · 0.95
CaptureUserFeedbackMethod · 0.95
CaptureUserRevisionMethod · 0.95

Calls 3

ProcessEventMethod · 0.80
WarnMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected