aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/webui.rs2
-rw-r--r--src/worker_ws.rs6
2 files changed, 6 insertions, 2 deletions
diff --git a/src/webui.rs b/src/webui.rs
index 61ea324..17eb5e0 100644
--- a/src/webui.rs
+++ b/src/webui.rs
@@ -39,7 +39,7 @@ pub(crate) async fn webui(S(state): S<Arc<RwLock<State>>>) -> Html<String> {
title { "Queue-Server" }
}
body {
- section.workers {
+ section[id="workers"] {
h2 { "Workers"}
ul { @for (id, w) in &g.workers {
li { @Worker { id: *id, w } }
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 {