fix(loop): polling

This commit is contained in:
afjcjsbx 2026-03-27 22:37:11 +01:00
parent 60d7ec20a5
commit f44e0298db

View file

@ -387,10 +387,17 @@ func (al *AgentLoop) Run(ctx context.Context) error {
return err return err
} }
for al.running.Load() { idleTicker := time.NewTicker(100 * time.Millisecond)
defer idleTicker.Stop()
for {
select { select {
case <-ctx.Done(): case <-ctx.Done():
return nil return nil
case <-idleTicker.C:
if !al.running.Load() {
return nil
}
case msg, ok := <-al.bus.InboundChan(): case msg, ok := <-al.bus.InboundChan():
if !ok { if !ok {
return nil return nil
@ -517,12 +524,8 @@ func (al *AgentLoop) Run(ctx context.Context) error {
al.publishResponseIfNeeded(ctx, target.Channel, target.ChatID, finalResponse) al.publishResponseIfNeeded(ctx, target.Channel, target.ChatID, finalResponse)
} }
}() }()
default:
time.Sleep(time.Microsecond * 200)
} }
} }
return nil
} }
// drainBusToSteering consumes inbound messages and redirects messages from the // drainBusToSteering consumes inbound messages and redirects messages from the