From e7dce371ce9d46111825a158d8385720ae8b0beb Mon Sep 17 00:00:00 2001 From: City <125218114+city96@users.noreply.github.com> Date: Sat, 7 Oct 2023 21:11:41 +0200 Subject: [PATCH] Clear queue before new job --- nodes/control.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/nodes/control.py b/nodes/control.py index 6e36ab2..6b17281 100644 --- a/nodes/control.py +++ b/nodes/control.py @@ -177,6 +177,33 @@ class QueueRemote: CATEGORY = "remote/advanced" TITLE = "Queue on remote (worker)" + def clear_remote_queue(self, remote_url): + def parse_job(data): + gid = data[1] + client_id = data[3].get("client_id") + job_id = data[3].get("job_id") + return gid, client_id, job_id + + r = requests.get(remote_url + "queue") + r.raise_for_status() + queue = r.json() + + to_cancel = [] + for k in queue.get("queue_pending", []): + if k[3].get("client_id") == get_client_id(): + to_cancel.append(k[1]) # job UUID + r = requests.post( + remote_url+"queue", + json={ "delete" : to_cancel } + ) + r.raise_for_status() + + for k in queue.get("queue_running", []): + if k[3].get("client_id") == get_client_id(): + r = requests.post(remote_url+"interrupt", json={}) + r.raise_for_status() + break + def queue_on_remote(self, remote_chain, remote_url, batch_override, enabled): batch = batch_override if batch_override > 0 else remote_chain["batch"] remote_chain["seed"] += batch @@ -275,6 +302,7 @@ class QueueRemote: "job_id": remote_info["job_id"], } } + self.clear_remote_queue(remote_url) ar = requests.post(remote_url+"prompt", json=data) ar.raise_for_status() return(remote_chain, remote_info)