mirror of
https://github.com/GlueOps/autoglue.git
synced 2026-02-13 21:00:06 +01:00
fix: jobs api
This commit is contained in:
@@ -21,12 +21,14 @@ func LoadKPI(db *gorm.DB) (KPI, error) {
|
||||
now := time.Now()
|
||||
dayAgo := now.Add(-24 * time.Hour)
|
||||
|
||||
// Running now
|
||||
if err := db.Model(&models.Job{}).
|
||||
Where("status = ?", "running").
|
||||
Count(&k.RunningNow).Error; err != nil {
|
||||
return k, err
|
||||
}
|
||||
|
||||
// Scheduled in the future
|
||||
if err := db.Model(&models.Job{}).
|
||||
Where("status IN ?", []string{"queued", "scheduled", "pending"}).
|
||||
Where("scheduled_at > ?", now).
|
||||
@@ -34,6 +36,7 @@ func LoadKPI(db *gorm.DB) (KPI, error) {
|
||||
return k, err
|
||||
}
|
||||
|
||||
// Due now (queued/scheduled/pending with scheduled_at <= now)
|
||||
if err := db.Model(&models.Job{}).
|
||||
Where("status IN ?", []string{"queued", "scheduled", "pending"}).
|
||||
Where("scheduled_at <= ?", now).
|
||||
@@ -41,22 +44,25 @@ func LoadKPI(db *gorm.DB) (KPI, error) {
|
||||
return k, err
|
||||
}
|
||||
|
||||
// Sum of 'ready' over successful jobs in last 24h
|
||||
if err := db.Model(&models.Job{}).
|
||||
Where("status = ?", "success").
|
||||
Where("updated_at >= ?", dayAgo).
|
||||
Count(&k.Succeeded24h).Error; err != nil {
|
||||
Select("COALESCE(SUM((result->>'ready')::int), 0)").
|
||||
Where("status = 'success' AND updated_at >= ?", dayAgo).
|
||||
Scan(&k.Succeeded24h).Error; err != nil {
|
||||
return k, err
|
||||
}
|
||||
|
||||
// Sum of 'failed' over successful jobs in last 24h (failures within a “success” run)
|
||||
if err := db.Model(&models.Job{}).
|
||||
Where("status = ?", "failed").
|
||||
Where("updated_at >= ?", dayAgo).
|
||||
Count(&k.Failed24h).Error; err != nil {
|
||||
Select("COALESCE(SUM((result->>'failed')::int), 0)").
|
||||
Where("status = 'success' AND updated_at >= ?", dayAgo).
|
||||
Scan(&k.Failed24h).Error; err != nil {
|
||||
return k, err
|
||||
}
|
||||
|
||||
// Retryable failed job rows (same as before)
|
||||
if err := db.Model(&models.Job{}).
|
||||
Where("status = ?", "failed").
|
||||
Where("status = 'failed'").
|
||||
Where("retry_count < max_retry").
|
||||
Count(&k.Retryable).Error; err != nil {
|
||||
return k, err
|
||||
|
||||
Reference in New Issue
Block a user