refactor(monitoring): consolidate workers and extract to scheduler process

Remove standalone lease-recovery, received-inspection, and result-recovery
workers from tenant-api (now handled by scheduler process). Add configurable
concurrency to ingest and projection-rebuild workers via MonitoringWorkers
runtime config. Extract shared runtime types for worker configuration.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-15 14:19:57 +08:00
parent 3f5b5c1e01
commit e8f48c6d37
12 changed files with 161 additions and 450 deletions
@@ -0,0 +1,22 @@
package app
import (
"encoding/json"
"fmt"
)
func decodeMonitoringTaskResultEnvelope(payload []byte) (*monitoringTaskResultEnvelope, error) {
if len(payload) == 0 {
return nil, fmt.Errorf("monitoring task result payload is empty")
}
var envelope monitoringTaskResultEnvelope
if err := json.Unmarshal(payload, &envelope); err != nil {
return nil, err
}
if envelope.TaskID <= 0 {
return nil, fmt.Errorf("monitoring task result payload missing task_id")
}
return &envelope, nil
}