diff --git a/frappe/core/doctype/rq_worker/rq_worker.json b/frappe/core/doctype/rq_worker/rq_worker.json index d9a5a23f67..18441377c9 100644 --- a/frappe/core/doctype/rq_worker/rq_worker.json +++ b/frappe/core/doctype/rq_worker/rq_worker.json @@ -76,13 +76,13 @@ { "fieldname": "queue", "fieldtype": "Data", - "label": "Queue" + "label": "Queue(s)" }, { "fieldname": "queue_type", "fieldtype": "Select", "in_list_view": 1, - "label": "Queue Type", + "label": "Queue Type(s)", "options": "default\nlong\nshort" }, { @@ -113,7 +113,7 @@ "in_create": 1, "is_virtual": 1, "links": [], - "modified": "2022-11-14 15:35:32.786012", + "modified": "2022-11-24 14:50:48.511706", "modified_by": "Administrator", "module": "Core", "name": "RQ Worker", diff --git a/frappe/core/doctype/rq_worker/rq_worker.py b/frappe/core/doctype/rq_worker/rq_worker.py index 3de0c8f7fc..52397cd5cc 100644 --- a/frappe/core/doctype/rq_worker/rq_worker.py +++ b/frappe/core/doctype/rq_worker/rq_worker.py @@ -16,8 +16,10 @@ class RQWorker(Document): def load_from_db(self): all_workers = get_workers() - worker = [w for w in all_workers if w.pid == cint(self.name)][0] - d = serialize_worker(worker) + workers = [w for w in all_workers if w.pid == cint(self.name)] + if not workers: + raise frappe.DoesNotExistError + d = serialize_worker(workers[0]) super(Document, self).__init__(d) @@ -53,10 +55,11 @@ class RQWorker(Document): def serialize_worker(worker: Worker) -> frappe._dict: queue = ", ".join(worker.queue_names()) + queue_types = ",".join(q.rsplit(":", 1)[1] for q in worker.queue_names()) return frappe._dict( name=worker.pid, queue=queue, - queue_type=queue.rsplit(":", 1)[1], + queue_type=queue_types, worker_name=worker.name, status=worker.get_state(), pid=worker.pid, diff --git a/frappe/utils/background_jobs.py b/frappe/utils/background_jobs.py index f321a62c77..873a91dd14 100755 --- a/frappe/utils/background_jobs.py +++ b/frappe/utils/background_jobs.py @@ -377,6 +377,8 @@ def generate_qname(qtype: str) -> str: qnames are useful to define namespaces of customers. """ + if isinstance(qtype, list): + qtype = ",".join(qtype) return f"{get_bench_id()}:{qtype}"