diff options
Diffstat (limited to 'makima/src/server')
| -rw-r--r-- | makima/src/server/handlers/mesh_daemon.rs | 15 |
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 |
