From 95f74c5ea776e910027ec0c55250d83c1f7970e3 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Tue, 24 Oct 2023 16:09:28 +0200 Subject: [PATCH] (control) Filter out heartbeats that are stopped --- .../control/sys/svc/HeartbeatService.java | 22 ++++--------------- .../control/partials/processes-table.hdb | 4 ++-- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/code/services-core/control-service/src/main/java/nu/marginalia/control/sys/svc/HeartbeatService.java b/code/services-core/control-service/src/main/java/nu/marginalia/control/sys/svc/HeartbeatService.java index d1db3752..aa008062 100644 --- a/code/services-core/control-service/src/main/java/nu/marginalia/control/sys/svc/HeartbeatService.java +++ b/code/services-core/control-service/src/main/java/nu/marginalia/control/sys/svc/HeartbeatService.java @@ -58,6 +58,7 @@ public class HeartbeatService { var stmt = conn.prepareStatement(""" SELECT TASK_NAME, TASK_BASE, NODE, INSTANCE, SERVICE_INSTANCE, STATUS, STAGE_NAME, PROGRESS, TIMESTAMPDIFF(MICROSECOND, TASK_HEARTBEAT.HEARTBEAT_TIME, CURRENT_TIMESTAMP(6)) AS TSDIFF FROM TASK_HEARTBEAT + WHERE STATUS = 'RUNNING' """)) { var rs = stmt.executeQuery(); while (rs.next()) { @@ -88,6 +89,7 @@ public class HeartbeatService { SELECT TASK_NAME, TASK_BASE, NODE, INSTANCE, SERVICE_INSTANCE, STATUS, STAGE_NAME, PROGRESS, TIMESTAMPDIFF(MICROSECOND, TASK_HEARTBEAT.HEARTBEAT_TIME, CURRENT_TIMESTAMP(6)) AS TSDIFF FROM TASK_HEARTBEAT WHERE NODE=? + AND STATUS='RUNNING' """)) { stmt.setInt(1, node); var rs = stmt.executeQuery(); @@ -134,6 +136,7 @@ public class HeartbeatService { SELECT PROCESS_NAME, PROCESS_BASE, NODE, INSTANCE, STATUS, PROGRESS, TIMESTAMPDIFF(MICROSECOND, HEARTBEAT_TIME, CURRENT_TIMESTAMP(6)) AS TSDIFF FROM PROCESS_HEARTBEAT + WHERE STATUS = 'RUNNING' """)) { var rs = stmt.executeQuery(); @@ -166,6 +169,7 @@ public class HeartbeatService { TIMESTAMPDIFF(MICROSECOND, HEARTBEAT_TIME, CURRENT_TIMESTAMP(6)) AS TSDIFF FROM PROCESS_HEARTBEAT WHERE NODE=? + AND STATUS='RUNNING' """)) { stmt.setInt(1, node); @@ -191,22 +195,4 @@ public class HeartbeatService { return heartbeats; } - public void flagProcessAsStopped(ProcessHeartbeat processHeartbeat) { - eventLogService.logEvent("PROCESS-MISSING", "Marking stale process heartbeat " - + processHeartbeat.processId() + " / " + processHeartbeat.uuidFull() + " as stopped"); - - try (var conn = dataSource.getConnection(); - var stmt = conn.prepareStatement(""" - UPDATE PROCESS_HEARTBEAT - SET STATUS = 'STOPPED' - WHERE INSTANCE = ? - """)) { - - stmt.setString(1, processHeartbeat.uuidFull()); - stmt.executeUpdate(); - } - catch (SQLException ex) { - throw new RuntimeException(ex); - } - } } diff --git a/code/services-core/control-service/src/main/resources/templates/control/partials/processes-table.hdb b/code/services-core/control-service/src/main/resources/templates/control/partials/processes-table.hdb index a3e3e5e8..71ea919f 100644 --- a/code/services-core/control-service/src/main/resources/templates/control/partials/processes-table.hdb +++ b/code/services-core/control-service/src/main/resources/templates/control/partials/processes-table.hdb @@ -28,14 +28,14 @@

Jobs

- + {{#each jobs}} - +
Process IDJob Status Progress Last Seen (ms)
{{taskBase}}{{taskName}} {{status}} {{#if progress}}{{progress}}%{{/if}} {{stage}} {{#unless isStopped}}{{lastSeenMillis}}{{/unless}}