feat: add ops scheduler control center
This commit is contained in:
@@ -174,6 +174,42 @@ func (w *MonitoringDailyTaskWorker) runOnce(parent context.Context) {
|
||||
)
|
||||
}
|
||||
|
||||
func (w *MonitoringDailyTaskWorker) RunOnce(parent context.Context) (map[string]any, error) {
|
||||
if w == nil || w.service == nil || w.service.businessPool == nil || w.service.monitoringPool == nil {
|
||||
return map[string]any{"skipped": true, "reason": "worker_not_ready"}, nil
|
||||
}
|
||||
ctx, cancel := context.WithTimeout(parent, w.timeout)
|
||||
defer cancel()
|
||||
|
||||
startedAt := time.Now()
|
||||
summary, err := w.service.GenerateDailyMonitoringTasks(ctx, w.projectionService, time.Now().UTC())
|
||||
duration := time.Since(startedAt)
|
||||
recordMonitoringDailyTaskMetrics(summary, duration, err)
|
||||
stats := map[string]any{
|
||||
"duration_ms": duration.Milliseconds(),
|
||||
}
|
||||
if summary != nil {
|
||||
stats["business_date"] = summary.BusinessDate
|
||||
stats["tenant_count"] = summary.TenantCount
|
||||
stats["brand_count"] = summary.BrandCount
|
||||
stats["failed_plan_count"] = summary.FailedPlanCount
|
||||
stats["failed_brand_count"] = summary.FailedBrandCount
|
||||
stats["planned_task_count"] = summary.PlannedTaskCount
|
||||
stats["due_task_count"] = summary.DueTaskCount
|
||||
stats["created_task_count"] = summary.CreatedTaskCount
|
||||
stats["desktop_task_count"] = summary.DesktopTaskCount
|
||||
stats["deferred_task_count"] = summary.DeferredTaskCount
|
||||
stats["skipped_plan_count"] = summary.SkippedPlanCount
|
||||
}
|
||||
if err != nil {
|
||||
if w.logger != nil {
|
||||
w.logger.Warn("monitoring daily task generation failed", MonitoringWorkerErrorFields(err)...)
|
||||
}
|
||||
return stats, err
|
||||
}
|
||||
return stats, nil
|
||||
}
|
||||
|
||||
func (s *MonitoringService) GenerateDailyMonitoringTasks(
|
||||
ctx context.Context,
|
||||
projectionService *MonitoringCallbackService,
|
||||
|
||||
Reference in New Issue
Block a user