Exposing on hold

This commit is contained in:
Brage Skjønborg 2026-01-31 12:22:13 +01:00
parent 44cd5c2182
commit 8a042a3fd3
3 changed files with 8 additions and 1 deletions

View File

@ -9,13 +9,16 @@ data class CoordinatorHealth(
val activeTasks: Int, val activeTasks: Int,
val queuedTasks: Int, val queuedTasks: Int,
val failedTasks: Int, val failedTasks: Int,
val sequencesOnHold: Int,
val lastActivity: Instant?, val lastActivity: Instant?,
// IDs for UI linking // IDs for UI linking
val abandonedTaskIds: List<String>, val abandonedTaskIds: List<String>,
val stalledTaskIds: List<String>, val stalledTaskIds: List<String>,
val sequencesOnHoldIds: List<String>,
val overdueSequenceIds: List<String>, val overdueSequenceIds: List<String>,
// Detailed sequence info // Detailed sequence info
val overdueSequences: List<SequenceHealth>, val overdueSequences: List<SequenceHealth>,

View File

@ -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.dto.rate.EventRate
import no.iktdev.mediaprocessing.coordinator.util.DiskInfo import no.iktdev.mediaprocessing.coordinator.util.DiskInfo
import no.iktdev.mediaprocessing.coordinator.util.getDiskInfoFor 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.EventLifecycleRules
import no.iktdev.mediaprocessing.shared.common.rules.TaskLifecycleRules import no.iktdev.mediaprocessing.shared.common.rules.TaskLifecycleRules
import no.iktdev.mediaprocessing.shared.database.stores.TaskStore import no.iktdev.mediaprocessing.shared.database.stores.TaskStore
@ -18,6 +19,7 @@ import java.time.Instant
class CoordinatorHealthService( class CoordinatorHealthService(
private val taskService: TaskService, private val taskService: TaskService,
private val eventService: EventService, private val eventService: EventService,
private val aggregator: SequenceAggregatorService,
private val coordinatorEnv: CoordinatorEnv private val coordinatorEnv: CoordinatorEnv
) { ) {
@ -37,6 +39,7 @@ class CoordinatorHealthService(
.map { it.taskId } .map { it.taskId }
val failedTasks = taskService.getFailedTasks() val failedTasks = taskService.getFailedTasks()
val sequencesOnHold = aggregator.getActiveSequences().filter { it.currentState == CurrentState.OnHold }
// --- SEQUENCE HEALTH --- // --- SEQUENCE HEALTH ---
val overdueSequences = incompleteSequences val overdueSequences = incompleteSequences
@ -99,6 +102,8 @@ class CoordinatorHealthService(
abandonedTaskIds = abandonedTaskIds.map { it.toString() }, abandonedTaskIds = abandonedTaskIds.map { it.toString() },
stalledTaskIds = stalledTaskIds.map { it.toString() }, stalledTaskIds = stalledTaskIds.map { it.toString() },
sequencesOnHold = sequencesOnHold.size,
sequencesOnHoldIds = sequencesOnHold.map { it.referenceId },
overdueSequenceIds = overdueSequenceIds, overdueSequenceIds = overdueSequenceIds,
overdueSequences = overdueSequences, overdueSequences = overdueSequences,

View File

@ -71,5 +71,4 @@ class EventService {
fun getLastEventTimestamp(): Instant? = EventStore.getLastEventTimestamp() fun getLastEventTimestamp(): Instant? = EventStore.getLastEventTimestamp()
} }