Fetching global last
This commit is contained in:
parent
768a162ac0
commit
10ffc77e7c
@ -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() },
|
||||
|
||||
@ -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()
|
||||
|
||||
|
||||
}
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user