diff options
Diffstat (limited to 'src/worker_ws.rs')
-rw-r--r-- | src/worker_ws.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/worker_ws.rs b/src/worker_ws.rs index c98e08d..25ec7b0 100644 --- a/src/worker_ws.rs +++ b/src/worker_ws.rs @@ -143,7 +143,8 @@ async fn worker_websocket_inner(ws: WebSocket, state: Arc<RwLock<State>>) { // recycle incomplete tasks for key in w.assigned_tasks { g.loading.remove(&key); - g.queue.insert(key); + g.queue.insert(key.clone()); + g.send_webui_task_update(&key); } g.send_webui_worker_removal(worker); } @@ -163,6 +164,7 @@ impl State { WorkerRequest::Register { name, task_kinds } => { worker.name = name; worker.task_kinds = task_kinds; + self.send_webui_worker_update(w); } WorkerRequest::Metadata { key, data } => { let m = self.metadata.entry(key.clone()).or_default(); @@ -199,6 +201,7 @@ impl State { self.loading.remove(&key); self.complete.insert(key.clone()); self.send_webui_task_update(&key); + self.send_webui_worker_update(w); } else { bail!("task was not assigned") } @@ -239,6 +242,7 @@ impl State { self.queue.remove(&key); self.loading.insert(key.clone()); self.send_webui_task_update(&key); + self.send_webui_worker_update(w); self.send_to_worker( w, WorkerResponse::Work { |