mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-23 21:18:58 +00:00
(control) Filter out heartbeats that are stopped
This commit is contained in:
parent
8d1c3c754d
commit
95f74c5ea7
@ -58,6 +58,7 @@ public class HeartbeatService {
|
|||||||
var stmt = conn.prepareStatement("""
|
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
|
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
|
FROM TASK_HEARTBEAT
|
||||||
|
WHERE STATUS = 'RUNNING'
|
||||||
""")) {
|
""")) {
|
||||||
var rs = stmt.executeQuery();
|
var rs = stmt.executeQuery();
|
||||||
while (rs.next()) {
|
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
|
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
|
FROM TASK_HEARTBEAT
|
||||||
WHERE NODE=?
|
WHERE NODE=?
|
||||||
|
AND STATUS='RUNNING'
|
||||||
""")) {
|
""")) {
|
||||||
stmt.setInt(1, node);
|
stmt.setInt(1, node);
|
||||||
var rs = stmt.executeQuery();
|
var rs = stmt.executeQuery();
|
||||||
@ -134,6 +136,7 @@ public class HeartbeatService {
|
|||||||
SELECT PROCESS_NAME, PROCESS_BASE, NODE, INSTANCE, STATUS, PROGRESS,
|
SELECT PROCESS_NAME, PROCESS_BASE, NODE, INSTANCE, STATUS, PROGRESS,
|
||||||
TIMESTAMPDIFF(MICROSECOND, HEARTBEAT_TIME, CURRENT_TIMESTAMP(6)) AS TSDIFF
|
TIMESTAMPDIFF(MICROSECOND, HEARTBEAT_TIME, CURRENT_TIMESTAMP(6)) AS TSDIFF
|
||||||
FROM PROCESS_HEARTBEAT
|
FROM PROCESS_HEARTBEAT
|
||||||
|
WHERE STATUS = 'RUNNING'
|
||||||
""")) {
|
""")) {
|
||||||
|
|
||||||
var rs = stmt.executeQuery();
|
var rs = stmt.executeQuery();
|
||||||
@ -166,6 +169,7 @@ public class HeartbeatService {
|
|||||||
TIMESTAMPDIFF(MICROSECOND, HEARTBEAT_TIME, CURRENT_TIMESTAMP(6)) AS TSDIFF
|
TIMESTAMPDIFF(MICROSECOND, HEARTBEAT_TIME, CURRENT_TIMESTAMP(6)) AS TSDIFF
|
||||||
FROM PROCESS_HEARTBEAT
|
FROM PROCESS_HEARTBEAT
|
||||||
WHERE NODE=?
|
WHERE NODE=?
|
||||||
|
AND STATUS='RUNNING'
|
||||||
""")) {
|
""")) {
|
||||||
|
|
||||||
stmt.setInt(1, node);
|
stmt.setInt(1, node);
|
||||||
@ -191,22 +195,4 @@ public class HeartbeatService {
|
|||||||
return heartbeats;
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -28,14 +28,14 @@
|
|||||||
<h2>Jobs</h2>
|
<h2>Jobs</h2>
|
||||||
<table id="jobs" class="table">
|
<table id="jobs" class="table">
|
||||||
<tr>
|
<tr>
|
||||||
<th>Process ID</th>
|
<th>Job</th>
|
||||||
<th>Status</th>
|
<th>Status</th>
|
||||||
<th>Progress</th>
|
<th>Progress</th>
|
||||||
<th>Last Seen (ms)</th>
|
<th>Last Seen (ms)</th>
|
||||||
</tr>
|
</tr>
|
||||||
{{#each jobs}}
|
{{#each jobs}}
|
||||||
<tr class="{{#if isMissing}}missing{{/if}}">
|
<tr class="{{#if isMissing}}missing{{/if}}">
|
||||||
<td>{{taskBase}}</td>
|
<td>{{taskName}}</td>
|
||||||
<td>{{status}}</td>
|
<td>{{status}}</td>
|
||||||
<td style="{{progressStyle}}">{{#if progress}}{{progress}}%{{/if}} {{stage}}</td>
|
<td style="{{progressStyle}}">{{#if progress}}{{progress}}%{{/if}} {{stage}}</td>
|
||||||
<td>{{#unless isStopped}}{{lastSeenMillis}}{{/unless}}</td>
|
<td>{{#unless isStopped}}{{lastSeenMillis}}{{/unless}}</td>
|
||||||
|
Loading…
Reference in New Issue
Block a user