From 8a042a3fd3d7935a58b92b9ec96816deaba0b19c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Sat, 31 Jan 2026 12:22:13 +0100 Subject: [PATCH] Exposing on hold --- .../coordinator/dto/health/CoordinatorHealth.kt | 3 +++ .../coordinator/services/CoordinatorHealthService.kt | 5 +++++ .../mediaprocessing/coordinator/services/EventService.kt | 1 - 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/dto/health/CoordinatorHealth.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/dto/health/CoordinatorHealth.kt index 08423ca0..007a51b9 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/dto/health/CoordinatorHealth.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/dto/health/CoordinatorHealth.kt @@ -9,13 +9,16 @@ data class CoordinatorHealth( val activeTasks: Int, val queuedTasks: Int, val failedTasks: Int, + val sequencesOnHold: Int, val lastActivity: Instant?, // IDs for UI linking val abandonedTaskIds: List, val stalledTaskIds: List, + val sequencesOnHoldIds: List, val overdueSequenceIds: List, + // Detailed sequence info val overdueSequences: List, diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/services/CoordinatorHealthService.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/services/CoordinatorHealthService.kt index 84d1a79e..a739e54c 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/services/CoordinatorHealthService.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/services/CoordinatorHealthService.kt @@ -7,6 +7,7 @@ import no.iktdev.mediaprocessing.coordinator.dto.health.SequenceHealth import no.iktdev.mediaprocessing.coordinator.dto.rate.EventRate import no.iktdev.mediaprocessing.coordinator.util.DiskInfo import no.iktdev.mediaprocessing.coordinator.util.getDiskInfoFor +import no.iktdev.mediaprocessing.shared.common.dto.CurrentState import no.iktdev.mediaprocessing.shared.common.rules.EventLifecycleRules import no.iktdev.mediaprocessing.shared.common.rules.TaskLifecycleRules import no.iktdev.mediaprocessing.shared.database.stores.TaskStore @@ -18,6 +19,7 @@ import java.time.Instant class CoordinatorHealthService( private val taskService: TaskService, private val eventService: EventService, + private val aggregator: SequenceAggregatorService, private val coordinatorEnv: CoordinatorEnv ) { @@ -37,6 +39,7 @@ class CoordinatorHealthService( .map { it.taskId } val failedTasks = taskService.getFailedTasks() + val sequencesOnHold = aggregator.getActiveSequences().filter { it.currentState == CurrentState.OnHold } // --- SEQUENCE HEALTH --- val overdueSequences = incompleteSequences @@ -99,6 +102,8 @@ class CoordinatorHealthService( abandonedTaskIds = abandonedTaskIds.map { it.toString() }, stalledTaskIds = stalledTaskIds.map { it.toString() }, + sequencesOnHold = sequencesOnHold.size, + sequencesOnHoldIds = sequencesOnHold.map { it.referenceId }, overdueSequenceIds = overdueSequenceIds, overdueSequences = overdueSequences, diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/services/EventService.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/services/EventService.kt index 0f10534b..3281cba2 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/services/EventService.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/services/EventService.kt @@ -71,5 +71,4 @@ class EventService { fun getLastEventTimestamp(): Instant? = EventStore.getLastEventTimestamp() - } \ No newline at end of file