From b3eaec4347d2c7cc7a26aacf927bce62e5b6b547 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Sat, 13 Jan 2024 10:54:38 +0530 Subject: [PATCH] fix: misc (#24303) * fix(DX): improve logging in various places * fix(ux): misc RQ worker and job fixes --- frappe/core/doctype/rq_job/rq_job.json | 5 +++-- frappe/core/doctype/rq_job/rq_job.py | 2 +- frappe/core/doctype/rq_worker/rq_worker.json | 3 ++- frappe/core/doctype/rq_worker/rq_worker.py | 2 +- frappe/core/doctype/rq_worker/rq_worker_list.js | 9 +++++++++ frappe/translate.py | 1 + frappe/utils/background_jobs.py | 9 ++++++--- 7 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 frappe/core/doctype/rq_worker/rq_worker_list.js diff --git a/frappe/core/doctype/rq_job/rq_job.json b/frappe/core/doctype/rq_job/rq_job.json index 7cae15cf59..6a3946754c 100644 --- a/frappe/core/doctype/rq_job/rq_job.json +++ b/frappe/core/doctype/rq_job/rq_job.json @@ -2,7 +2,7 @@ "actions": [], "allow_copy": 1, "autoname": "field:job_id", - "creation": "2022-09-10 16:19:37.934903", + "creation": "2023-03-22 20:05:22.962044", "doctype": "DocType", "editable_grid": 1, "engine": "InnoDB", @@ -104,10 +104,11 @@ "fieldtype": "Section Break" } ], + "hide_toolbar": 1, "in_create": 1, "is_virtual": 1, "links": [], - "modified": "2022-09-11 05:27:50.878534", + "modified": "2024-01-13 10:38:40.230972", "modified_by": "Administrator", "module": "Core", "name": "RQ Job", diff --git a/frappe/core/doctype/rq_job/rq_job.py b/frappe/core/doctype/rq_job/rq_job.py index 69027af76f..ca745b01bc 100644 --- a/frappe/core/doctype/rq_job/rq_job.py +++ b/frappe/core/doctype/rq_job/rq_job.py @@ -59,8 +59,8 @@ class RQJob(Document): ] time_taken: DF.Duration | None timeout: DF.Duration | None - # end: auto-generated types + def load_from_db(self): try: job = Job.fetch(self.name, connection=get_redis_conn()) diff --git a/frappe/core/doctype/rq_worker/rq_worker.json b/frappe/core/doctype/rq_worker/rq_worker.json index 18441377c9..841c01ddec 100644 --- a/frappe/core/doctype/rq_worker/rq_worker.json +++ b/frappe/core/doctype/rq_worker/rq_worker.json @@ -110,10 +110,11 @@ "label": "Utilization %" } ], + "hide_toolbar": 1, "in_create": 1, "is_virtual": 1, "links": [], - "modified": "2022-11-24 14:50:48.511706", + "modified": "2024-01-13 10:36:13.034784", "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 025feb18a6..c7e1022576 100644 --- a/frappe/core/doctype/rq_worker/rq_worker.py +++ b/frappe/core/doctype/rq_worker/rq_worker.py @@ -34,8 +34,8 @@ class RQWorker(Document): total_working_time: DF.Duration | None utilization_percent: DF.Percent worker_name: DF.Data | None - # end: auto-generated types + def load_from_db(self): all_workers = get_workers() diff --git a/frappe/core/doctype/rq_worker/rq_worker_list.js b/frappe/core/doctype/rq_worker/rq_worker_list.js new file mode 100644 index 0000000000..88a7632541 --- /dev/null +++ b/frappe/core/doctype/rq_worker/rq_worker_list.js @@ -0,0 +1,9 @@ +frappe.listview_settings["RQ Worker"] = { + refresh(listview) { + listview.$no_result.html(` +
+ ${__("No RQ Workers connected. Try restarting the bench.")} +
+ `); + }, +}; diff --git a/frappe/translate.py b/frappe/translate.py index 94c9db918a..fc4461e102 100644 --- a/frappe/translate.py +++ b/frappe/translate.py @@ -189,6 +189,7 @@ def get_all_translations(lang: str) -> dict[str, str]: except Exception: # People mistakenly call translation function on global variables # where locals are not initalized, translations dont make much sense there + frappe.logger().error("Unable to load translations", exc_info=True) return {} diff --git a/frappe/utils/background_jobs.py b/frappe/utils/background_jobs.py index 71097a3a58..36b4a75c96 100755 --- a/frappe/utils/background_jobs.py +++ b/frappe/utils/background_jobs.py @@ -506,15 +506,18 @@ def get_redis_conn(username=None, password=None): return get_redis_connection_without_auth() else: return RedisQueue.get_connection(**cred) - except (redis.exceptions.AuthenticationError, redis.exceptions.ResponseError): + except redis.exceptions.AuthenticationError: log( f'Wrong credentials used for {cred.username or "default user"}. ' "You can reset credentials using `bench create-rq-users` CLI and restart the server", colour="red", ) raise - except Exception: - log(f"Please make sure that Redis Queue runs @ {frappe.get_conf().redis_queue}", colour="red") + except Exception as e: + log( + f"Please make sure that Redis Queue runs @ {frappe.get_conf().redis_queue}. Redis reported error: {str(e)}", + colour="red", + ) raise