Fetching global last

This commit is contained in:
Brage Skjønborg 2026-01-31 09:04:01 +01:00
parent 768a162ac0
commit 10ffc77e7c
3 changed files with 17 additions and 1 deletions

View File

@ -62,6 +62,10 @@ class CoordinatorHealthService(
val eventsLastMinute = eventService.getEventsLast(1)
val eventsLastFive = eventService.getEventsLast(5)
val last = listOfNotNull(
tasks.maxOfOrNull { it.persistedAt },
eventService.getLastEventTimestamp()
)
return CoordinatorHealth(
status = status,
@ -69,7 +73,7 @@ class CoordinatorHealthService(
stalledTasks = stalledTaskIds.size,
activeTasks = tasks.count { !it.consumed },
queuedTasks = TaskStore.getPendingTasks().size,
lastActivity = tasks.maxOfOrNull { it.persistedAt },
lastActivity = last.max(),
abandonedTaskIds = abandonedTaskIds.map { it.toString() },
stalledTaskIds = stalledTaskIds.map { it.toString() },

View File

@ -9,6 +9,7 @@ import no.iktdev.mediaprocessing.shared.common.dto.toDto
import no.iktdev.mediaprocessing.shared.common.effectivePersisted
import no.iktdev.mediaprocessing.shared.database.stores.EventStore
import org.springframework.stereotype.Service
import java.time.Instant
import java.util.*
@Service
@ -68,6 +69,7 @@ class EventService {
return EventStore.eventsLast(minutes)
}
fun getLastEventTimestamp(): Instant? = EventStore.getLastEventTimestamp()
}

View File

@ -17,6 +17,7 @@ import no.iktdev.mediaprocessing.shared.database.likeAny
import no.iktdev.mediaprocessing.shared.database.queries.pagedQuery
import no.iktdev.mediaprocessing.shared.database.tables.EventsTable
import no.iktdev.mediaprocessing.shared.database.withTransaction
import org.jetbrains.exposed.sql.SortOrder
import org.jetbrains.exposed.sql.insert
import java.time.Instant
import java.time.temporal.ChronoUnit
@ -152,4 +153,13 @@ object EventStore: EventStore {
}.getOrDefault(emptyList())
}
fun getLastEventTimestamp(): Instant? {
return withTransaction {
EventsTable.select(EventsTable.persistedAt)
.orderBy(EventsTable.persistedAt, SortOrder.DESC)
.limit(1)
.firstOrNull()
?.get(EventsTable.persistedAt)
}.getOrDefault(null)
}
}