summaryrefslogtreecommitdiff
path: root/makima/src
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-21 23:47:38 +0000
committersoryu <soryu@soryu.co>2026-01-21 23:52:38 +0000
commita6f91232285ad2db0ac58a7d0bc196e47da1ca8c (patch)
treea99021c4f703f53a5904a244486cfa0bb0843bb8 /makima/src
parentd7311e40c3326aaeea0918fe870f3cae7163ca15 (diff)
downloadsoryu-a6f91232285ad2db0ac58a7d0bc196e47da1ca8c.tar.gz
soryu-a6f91232285ad2db0ac58a7d0bc196e47da1ca8c.zip
Heartbeat daemon
Diffstat (limited to 'makima/src')
-rw-r--r--makima/src/server/handlers/mesh_daemon.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/makima/src/server/handlers/mesh_daemon.rs b/makima/src/server/handlers/mesh_daemon.rs
index 22a2792..6262975 100644
--- a/makima/src/server/handlers/mesh_daemon.rs
+++ b/makima/src/server/handlers/mesh_daemon.rs
@@ -696,7 +696,20 @@ async fn handle_daemon_connection(socket: WebSocket, state: SharedState, auth_re
"Daemon {} heartbeat: {} active tasks",
daemon_uuid, active_tasks.len()
);
- // TODO: Update daemon last_heartbeat_at in DB
+ // Update daemon last_heartbeat_at in DB
+ if let Some(ref pool) = state.db_pool {
+ let pool = pool.clone();
+ let daemon_id = daemon_uuid;
+ tokio::spawn(async move {
+ if let Err(e) = repository::update_daemon_heartbeat(&pool, daemon_id).await {
+ tracing::warn!(
+ daemon_id = %daemon_id,
+ error = %e,
+ "Failed to update daemon heartbeat"
+ );
+ }
+ });
+ }
}
Ok(DaemonMessage::TaskOutput { task_id, output, is_partial }) => {
// Parse the output line and broadcast structured data