fix: preserve cross-pod message order

This commit is contained in:
richjohnrambo
2026-10-01 19:00:16 +08:00
parent dccd0969d8
commit d43b1b63d3
8 changed files with 222 additions and 12 deletions
+5
View File
@@ -40,6 +40,7 @@ type agentRun struct {
publishCtrlObserved atomic.Int64
publishCtrlOver20 atomic.Int64
publishLateCtrl atomic.Int64
publishLateAccepted atomic.Int64
mu sync.Mutex
accepted []AcceptedMessage
@@ -982,6 +983,9 @@ func (r *agentRun) observeCtrl(account AccountRecord, observation ctrlObservatio
}
if observation.Late {
r.publishLateCtrl.Add(1)
if observation.Code >= 200 && observation.Code < 300 {
r.publishLateAccepted.Add(1)
}
}
if observation.Late || observation.Latency > 20*time.Second {
r.mu.Lock()
@@ -1001,6 +1005,7 @@ func (r *agentRun) applyCtrlObservations(summary *AgentSummary) {
summary.PublishCtrlObserved = r.publishCtrlObserved.Load()
summary.PublishCtrlOver20 = r.publishCtrlOver20.Load()
summary.PublishLateCtrl = r.publishLateCtrl.Load()
summary.PublishLateAccepted = r.publishLateAccepted.Load()
summary.PublishCtrlUnresolved = r.unresolvedCtrl()
summary.PublishOutcomeUnknown = r.outcomeUnknown()
summary.PublishCtrlLatency = r.ctrlLatency.Snapshot()